{"openapi":"3.0.1","info":{"title":"Floik Authentication Server","description":"Spring boot application secured with Keycloak security adapter and generate custom JWT tokens for each logged in user.","termsOfService":"https://www.floik.com/company/terms-and-conditions","contact":{"name":"Floik Support","url":"https://www.floik.com","email":"hi@floik.com"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0.html"},"version":"v1"},"servers":[{"url":"http://api.floik.com","description":"Generated server url"}],"tags":[{"name":"Kong Admin Controller","description":"Defines APIs for managing Kong API Gateway configurations"},{"name":"Internal Authentication Controller","description":"Defines internal APIs for authentication management"},{"name":"External Authentication Controller","description":"Defines APIs for external user authentication and token management"},{"name":"User Authentication Cache Controller","description":"Defines operations for user auth cache from authentication perspective"},{"name":"Authentication Controller","description":"Defines client-facing APIs related to user authentication and session management"},{"name":"Root Controller","description":"Endpoints for root URL and error handling"},{"name":"User Analytical Controller","description":"Defines operations for user analytics from authentication perspective"}],"paths":{"/error":{"get":{"tags":["Root Controller"],"summary":"Error handler","description":"Handles all error pages and redirects to default URL","operationId":"handleError","responses":{"302":{"description":"Redirect to default application URL"},"500":{"description":"Internal server error"}}},"post":{"tags":["Root Controller"],"summary":"Error handler","description":"Handles all error pages and redirects to default URL","operationId":"handleError_1","responses":{"302":{"description":"Redirect to default application URL"},"500":{"description":"Internal server error"}}}},"/v1/kong-admin/services/{serviceId}":{"get":{"tags":["Kong Admin Controller"],"summary":"Get service by ID","description":"Retrieves a specific service by its ID","operationId":"getServiceById","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseService"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseService"}}}}}},"put":{"tags":["Kong Admin Controller"],"summary":"Update service","description":"Updates an existing service configuration","operationId":"updateService","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}},"required":true},"responses":{"200":{"description":"Service updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseService"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseService"}}}}}},"delete":{"tags":["Kong Admin Controller"],"summary":"Delete service","description":"Deletes a service and its associated resources","operationId":"deleteService","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}}}}},"/v1/authentication/cleanup-expired-tokens":{"put":{"tags":["Authentication Controller"],"summary":"Cleanup expired tokens","description":"Scheduled job to clean up expired and stale tokens from database","operationId":"cleanupExpiredTokens","responses":{"200":{"description":"Cleanup completed successfully","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseString"}}}}}}},"/v1/authentication/anonymous-user":{"put":{"tags":["Authentication Controller"],"summary":"Create anonymous user","description":"Creates a new anonymous user in Keycloak and returns user details with tokens. Optional user details can be provided for the anonymous account.","operationId":"createNewAnonymousUser","parameters":[{"name":"firstName","in":"query","description":"First name for anonymous user","required":false,"schema":{"type":"string"}},{"name":"lastName","in":"query","description":"Last name for anonymous user","required":false,"schema":{"type":"string"}},{"name":"email","in":"query","description":"Email for anonymous user","required":false,"schema":{"type":"string"}},{"name":"tokenExpiryTimeInSeconds","in":"query","description":"Token expiry time in seconds","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Anonymous user created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBean"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserBean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserBean"}}}}}}},"/v1/user-analytics/user-auth-data":{"post":{"tags":["User Analytical Controller"],"summary":"Get user authentication details","description":"Internal endpoint to retrieve authentication details for a list of users","operationId":"userAuthDetails","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"Authentication data retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAuthenticationData"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserAuthenticationData"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserAuthenticationData"}}}}}}},"/v1/kong-admin/upstreams":{"post":{"tags":["Kong Admin Controller"],"summary":"Add upstream","description":"Creates a new upstream","operationId":"addUpstream","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Upstream"}}},"required":true},"responses":{"200":{"description":"Upstream created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Upstream"}}}},"400":{"description":"Invalid upstream configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUpstream"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUpstream"}}}}}}},"/v1/kong-admin/upstreams/{upstreamId}/targets":{"post":{"tags":["Kong Admin Controller"],"summary":"Add target to upstream","description":"Adds a target to an upstream","operationId":"addTarget","parameters":[{"name":"upstreamId","in":"path","description":"Upstream ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Target"}}},"required":true},"responses":{"200":{"description":"Target added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Target"}}}},"404":{"description":"Upstream not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTarget"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTarget"}}}}}}},"/v1/kong-admin/services":{"get":{"tags":["Kong Admin Controller"],"summary":"Get all services","description":"Retrieves all services with pagination","operationId":"getAllServices","parameters":[{"name":"offset","in":"query","description":"Pagination offset","required":false,"schema":{"type":"string"}},{"name":"size","in":"query","description":"Page size","required":false,"schema":{"type":"integer","format":"int32","default":100}}],"responses":{"200":{"description":"Services retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceListResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseServiceListResponse"}}}}}},"post":{"tags":["Kong Admin Controller"],"summary":"Add a new service","description":"Creates a new service in Kong API Gateway","operationId":"addService","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}},"required":true},"responses":{"200":{"description":"Service created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Invalid service configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseService"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseService"}}}}}}},"/v1/kong-admin/services/{serviceId}/routes":{"get":{"tags":["Kong Admin Controller"],"summary":"Get service routes","description":"Retrieves all routes for a specific service","operationId":"getServiceRoutes","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Routes retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceRouteListResponse"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseServiceRouteListResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseServiceRouteListResponse"}}}}}},"post":{"tags":["Kong Admin Controller"],"summary":"Add route to service","description":"Adds a new route to an existing service","operationId":"addServiceRoute","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Route"}}},"required":true},"responses":{"200":{"description":"Route added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Route"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRoute"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRoute"}}}}}}},"/v1/kong-admin/services/{serviceId}/plugins":{"get":{"tags":["Kong Admin Controller"],"summary":"Get service plugins","description":"Retrieves all plugins for a specific service","operationId":"getServicePlugins","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plugins retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePluginListResponse"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseServicePluginListResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseServicePluginListResponse"}}}}}},"post":{"tags":["Kong Admin Controller"],"summary":"Add plugin to service","description":"Adds a plugin to a service","operationId":"addPlugin","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Plugin"}}},"required":true},"responses":{"200":{"description":"Plugin added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Plugin"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePlugin"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePlugin"}}}}}}},"/v1/kong-admin/consumers":{"get":{"tags":["Kong Admin Controller"],"summary":"Get all consumers","description":"Retrieves all consumers with pagination","operationId":"getAllConsumers","parameters":[{"name":"offset","in":"query","description":"Pagination offset","required":false,"schema":{"type":"string"}},{"name":"size","in":"query","description":"Page size","required":false,"schema":{"type":"integer","format":"int32","default":100}}],"responses":{"200":{"description":"Consumers retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerListResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumerListResponse"}}}}}},"post":{"tags":["Kong Admin Controller"],"summary":"Add consumer","description":"Creates a new consumer","operationId":"addConsumer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consumer"}}},"required":true},"responses":{"200":{"description":"Consumer created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consumer"}}}},"400":{"description":"Invalid consumer configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumer"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumer"}}}}}}},"/v1/kong-admin/consumers/{consumerId}/jwt":{"post":{"tags":["Kong Admin Controller"],"summary":"Add JWT credential to consumer","description":"Adds JWT credentials to a consumer","operationId":"addConsumerJWTCredential","parameters":[{"name":"consumerId","in":"path","description":"Consumer ID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerJWTConfig"}}},"required":true},"responses":{"200":{"description":"JWT credential added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerJWTConfig"}}}},"404":{"description":"Consumer not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumerJWTConfig"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumerJWTConfig"}}}}}}},"/v1/external/authentication/token":{"post":{"tags":["External Authentication Controller"],"summary":"Authenticate external user and generate tokens","description":"Validates an external authentication token, retrieves user information, and generates new access and refresh tokens for the user.","operationId":"getUserToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalAuthenticationRequestBean"}}},"required":true},"responses":{"200":{"description":"Authentication successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenBean"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}},"401":{"description":"Invalid or expired token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}}}}},"/v1/authentication/refresh-token":{"post":{"tags":["Authentication Controller"],"summary":"Refresh access token","description":"Generates a new access token using a valid refresh token. The refresh token must not be expired.","operationId":"generateNewTokenFromRefreshToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenBean"}}},"required":true},"responses":{"200":{"description":"New token generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenBean"}}}},"400":{"description":"Invalid refresh token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}}}}},"/v1/authentication/generate-desktop-code":{"post":{"tags":["Authentication Controller"],"summary":"Generate desktop authentication code","description":"Generates a one-time code for desktop app authentication","operationId":"generateDesktopCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenBean"}}},"required":true},"responses":{"401":{"description":"User not authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDesktopCodeResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDesktopCodeResponse"}}}},"200":{"description":"Code generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopCodeResponse"}}}}}}},"/v1/authentication/access-token":{"post":{"tags":["Authentication Controller"],"summary":"Exchange authentication code for tokens","description":"Exchanges a valid authentication code for access and refresh tokens. The code is single-use and will be invalidated after this call.","operationId":"getAccessTokenByCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeBean"}}},"required":true},"responses":{"200":{"description":"Tokens generated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenBean"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Invalid or expired code","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"User is already at the parallel-session limit. Response body shape: `{\"error\": \"...\", \"code\": \"<uuid>\"}`. The FE forwards `code` to `GET /v1/authentication/logout-all-devices?code={code}&device_token={device_token}` to clear all existing sessions, then retries this access-token exchange.","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/user-analytics/auth":{"get":{"tags":["User Analytical Controller"],"summary":"Get user authentication analytics","description":"Internal endpoint to collect and write user authentication analytics to a specified sheet","operationId":"getUserAuthenticationAnalytics","parameters":[{"name":"dateString","in":"query","required":true,"schema":{"type":"string"}},{"name":"sheetId","in":"query","required":true,"schema":{"type":"string"}},{"name":"sheetName","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Analytics data written successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}}}}},"/v1/uac/a/s/lg-c":{"get":{"tags":["User Authentication Cache Controller"],"summary":"Get all multi-login session codes","description":"Internal endpoint to retrieve all multi-login session codes from cache","operationId":"getAllAuthenticationSessionLoginCode","responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseListUserSessionSecretCodeCache"}}}},"200":{"description":"Multi-login session codes retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSessionSecretCodeCache"}}}}}}},"/v1/uac/a/c":{"get":{"tags":["User Authentication Cache Controller"],"summary":"Get all login secret codes","description":"Internal endpoint to retrieve all login secret codes from cache","operationId":"getAllAuthenticationLoginCode","responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseListUserAuthSecretCodeCache"}}}},"200":{"description":"Login secret codes retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAuthSecretCodeCache"}}}}}},"delete":{"tags":["User Authentication Cache Controller"],"summary":"Delete all login secret codes","description":"Internal endpoint to delete all login secret codes from cache","operationId":"deleteAllAuthenticationLoginCode","responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}},"200":{"description":"Login secret codes deleted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/v1/kong-admin/routes":{"get":{"tags":["Kong Admin Controller"],"summary":"Get all routes","description":"Retrieves all routes with pagination","operationId":"getAllRoutes","responses":{"200":{"description":"Routes retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteListResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRouteListResponse"}}}}}}},"/v1/kong-admin/routes/{routeId}":{"get":{"tags":["Kong Admin Controller"],"summary":"Get route by ID","description":"Retrieves a specific route by its ID","operationId":"getRouteById","parameters":[{"name":"routeId","in":"path","description":"Route ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Route retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Route"}}}},"404":{"description":"Route not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRoute"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRoute"}}}}}},"delete":{"tags":["Kong Admin Controller"],"summary":"Delete route","description":"Deletes a route","operationId":"deleteRoute","parameters":[{"name":"routeId","in":"path","description":"Route ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Route deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"404":{"description":"Route not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}}}}},"/v1/kong-admin/plugins":{"get":{"tags":["Kong Admin Controller"],"summary":"Get all plugins","description":"Retrieves all plugins with pagination","operationId":"getAllPlugins","responses":{"200":{"description":"Plugins retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginListResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePluginListResponse"}}}}}}},"/v1/kong-admin/plugins/{pluginId}":{"get":{"tags":["Kong Admin Controller"],"summary":"Get plugin by ID","description":"Retrieves a specific plugin by its ID","operationId":"getPluginById","parameters":[{"name":"pluginId","in":"path","description":"Plugin ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plugin retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Plugin"}}}},"404":{"description":"Plugin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePlugin"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePlugin"}}}}}},"delete":{"tags":["Kong Admin Controller"],"summary":"Delete plugin","description":"Deletes a plugin","operationId":"deletePlugin","parameters":[{"name":"pluginId","in":"path","description":"Plugin ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plugin deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"404":{"description":"Plugin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}}}}},"/v1/kong-admin/lock-cache":{"get":{"tags":["Kong Admin Controller"],"summary":"Get all locks added in cache","description":"Retrieves all locks added to cache","operationId":"getAllLocksCache","responses":{"200":{"description":"Retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Plugin"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseListDistributedLockCache"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseListDistributedLockCache"}}}}}}},"/v1/kong-admin/consumers/{consumerId}":{"get":{"tags":["Kong Admin Controller"],"summary":"Get consumer by ID","description":"Retrieves a specific consumer by its ID","operationId":"getConsumerById","parameters":[{"name":"consumerId","in":"path","description":"Consumer ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Consumer retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consumer"}}}},"404":{"description":"Consumer not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumer"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumer"}}}}}}},"/v1/authentication/user-token":{"get":{"tags":["Internal Authentication Controller"],"summary":"Get user token details","description":"Retrieves and validates token details for a specific user and device","operationId":"getUserTokenDetails","parameters":[{"name":"userId","in":"query","description":"User ID","required":true,"schema":{"type":"string"}},{"name":"deviceToken","in":"query","description":"Device token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Token details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenBean"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}},"401":{"description":"Invalid or expired token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTokenBean"}}}}}}},"/v1/authentication/logout":{"get":{"tags":["Authentication Controller"],"summary":"Logout current user session","description":"Invalidates the current user's session and removes token associations. Redirects to the login page after successful logout.","operationId":"logout","parameters":[{"name":"redirect_host","in":"query","description":"Host to redirect after logout","required":false,"schema":{"type":"string"}},{"name":"floik_token","in":"query","description":"Floik authentication token","required":true,"schema":{"type":"string"}},{"name":"device_token","in":"query","description":"Device token for session tracking","required":true,"schema":{"type":"string"}},{"name":"platform_type","in":"query","description":"Platform type for device limit validation","required":false,"schema":{"type":"string","default":"BROWSER"}},{"name":"userId","in":"query","description":"User ID (optional)","required":false,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirect to login page","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}},"400":{"description":"Invalid parameters","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}}}}},"/v1/authentication/logout-user":{"get":{"tags":["Authentication Controller"],"summary":"Logout specific user from all devices","description":"Invalidates all active sessions for a specific user across all devices. Requires admin privileges.","operationId":"forceLogoutIndividualUserSessions","parameters":[{"name":"userId","in":"query","description":"User ID to logout","required":true,"schema":{"type":"string"}},{"name":"redirect_host","in":"query","description":"Host to redirect after logout","required":false,"schema":{"type":"string"}},{"name":"device_token","in":"query","description":"Device token for session tracking","required":true,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirect to login page","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/v1/authentication/logout-all-devices":{"get":{"tags":["Authentication Controller"],"summary":"Logout user from all devices","description":"Invalidates all active sessions for a user across all devices. Requires a valid session code for authorization.","operationId":"forceLogoutUserSessions","parameters":[{"name":"code","in":"query","description":"Session code for authorization","required":true,"schema":{"type":"string"}},{"name":"redirect_host","in":"query","description":"Host to redirect after logout","required":false,"schema":{"type":"string"}},{"name":"device_token","in":"query","description":"Device token for session tracking","required":true,"schema":{"type":"string"}}],"responses":{"302":{"description":"Redirect to login page","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid parameters","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Invalid session code","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/v1/authentication/kong/consumers":{"get":{"tags":["Internal Authentication Controller"],"summary":"List Kong consumers","description":"Retrieves a paginated list of Kong API Gateway consumers","operationId":"listAllKongConsumers","parameters":[{"name":"offset","in":"query","description":"Pagination offset","required":false,"schema":{"type":"string"}},{"name":"size","in":"query","description":"Page size","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Consumer list retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerListResponse"}}}},"400":{"description":"Invalid pagination parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumerListResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseConsumerListResponse"}}}}}}},"/v1/authentication/headers":{"get":{"tags":["Internal Authentication Controller"],"summary":"Get system configuration","description":"Retrieves system environment variables and request headers","operationId":"getHeaders","responses":{"200":{"description":"Configuration retrieved successfully","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseMapStringMapStringString"}}}}}}},"/v1/authentication/device/login-reset":{"get":{"tags":["Internal Authentication Controller"],"summary":"Reset device login sessions","description":"Clears all device sessions without device tokens and removes stale data","operationId":"deviceLoginReset","responses":{"200":{"description":"Reset operation successful","content":{"application/json":{"schema":{"type":"boolean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}}}}},"/v1/authentication/desktop-login":{"get":{"tags":["Authentication Controller"],"summary":"Desktop login page","description":"Serves the desktop authentication page for code generation","operationId":"desktopLoginPage","responses":{"200":{"description":"Page rendered successfully","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/v1/authentication/cleanup":{"get":{"tags":["Internal Authentication Controller"],"summary":"Clear all user auth tokens and Kong consumers","description":"Clears all user auth tokens and removes Kong consumers in a background thread","operationId":"clearAllUserAuthTokensAndKongConsumers","responses":{"200":{"description":"Cleanup operation initiated successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}}}}},"/v1/authentication/authenticate":{"get":{"tags":["Authentication Controller"],"summary":"Authenticate user and generate tokens","description":"Initiates the authentication flow by redirecting to Keycloak login page if no session exists. After successful login, generates a new JWT token and stores it in the database. Redirects to the specified endpoint with a code for token retrieval.","operationId":"auth","parameters":[{"name":"redirect_uri","in":"query","description":"URI to redirect after authentication","required":true,"schema":{"type":"string"}},{"name":"redirect_host","in":"query","description":"Host to redirect to (must be in allowed hosts list)","required":true,"schema":{"type":"string"}},{"name":"device_token","in":"query","description":"Device token for session tracking","required":true,"schema":{"type":"string"}},{"name":"platform_type","in":"query","description":"Platform type for device limit validation","required":false,"schema":{"type":"string","default":"BROWSER"}}],"responses":{"302":{"description":"Redirect to Keycloak login or specified endpoint","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid redirect host or parameters","content":{"*/*":{"schema":{"type":"object"}}}},"401":{"description":"Authentication failed","content":{"*/*":{"schema":{"type":"object"}}}},"500":{"description":"Internal server error","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/v1/authentication/anonymous-token/reset":{"get":{"tags":["Internal Authentication Controller"],"summary":"Reset anonymous tokens","description":"Clears all anonymous user tokens and removes stale data","operationId":"anonymousTokenReset","responses":{"200":{"description":"Reset operation successful","content":{"application/json":{"schema":{"type":"boolean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}}}}},"/":{"get":{"tags":["Root Controller"],"summary":"Root endpoint","description":"Redirects to the default application URL","operationId":"root","responses":{"302":{"description":"Redirect to default application URL"},"500":{"description":"Internal server error"}}}},"/v1/kong-admin/services/{serviceId}/routes/{routeId}":{"delete":{"tags":["Kong Admin Controller"],"summary":"Delete service route","description":"Deletes a route from a service","operationId":"deleteServiceRoute","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}},{"name":"routeId","in":"path","description":"Route ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Route deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"404":{"description":"Service or route not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}}}}},"/v1/kong-admin/services/{serviceId}/plugins/{pluginId}":{"delete":{"tags":["Kong Admin Controller"],"summary":"Delete service plugin","description":"Deletes a plugin from a service","operationId":"deleteServicePlugin","parameters":[{"name":"serviceId","in":"path","description":"Service ID","required":true,"schema":{"type":"string"}},{"name":"pluginId","in":"path","description":"Plugin ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Plugin deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"404":{"description":"Service or plugin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}}}}},"/v1/kong-admin/consumers/{consumerName}":{"delete":{"tags":["Kong Admin Controller"],"summary":"Delete consumer by name","description":"Deletes a consumer by its username","operationId":"deleteConsumerByName","parameters":[{"name":"consumerName","in":"path","description":"Consumer username","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Consumer deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"404":{"description":"Consumer not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}}}}},"/v1/kong-admin/consumers/{consumerId}/jwt/{jwtId}":{"delete":{"tags":["Kong Admin Controller"],"summary":"Delete JWT credential","description":"Deletes a JWT credential from a consumer","operationId":"deleteConsumerJWTCredential","parameters":[{"name":"consumerId","in":"path","description":"Consumer ID","required":true,"schema":{"type":"string"}},{"name":"jwtId","in":"path","description":"JWT credential ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"JWT credential deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"404":{"description":"Consumer or JWT credential not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseVoid"}}}}}}},"/v1/kong-admin/consumers/anonymous":{"delete":{"tags":["Kong Admin Controller"],"summary":"Delete anonymous users","description":"Deletes all anonymous users from Kong in bulk. This operation runs asynchronously in a separate thread for better performance.","operationId":"deleteAnonymousUsers","responses":{"200":{"description":"Anonymous user deletion scheduled successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBoolean"}}}}}}}},"components":{"schemas":{"ClientCertificate":{"type":"object","properties":{"id":{"type":"string"}}},"Service":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"retries":{"type":"integer","format":"int32"},"protocol":{"type":"string"},"host":{"type":"string"},"port":{"type":"integer","format":"int32"},"path":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"connect_timeout":{"type":"integer","format":"int32"},"write_timeout":{"type":"integer","format":"int32"},"read_timeout":{"type":"integer","format":"int32"},"client_certificate":{"$ref":"#/components/schemas/ClientCertificate"},"tls_verify":{"type":"boolean"},"tls_verify_depth":{"type":"object"},"ca_certificates":{"type":"array","items":{"type":"string"}}}},"PaginationInfo":{"type":"object","properties":{"search":{"type":"string"},"pageNo":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"totalRecords":{"type":"integer","format":"int64"},"hasMore":{"type":"boolean"}}},"ResponseService":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/Service"}}},"ResponseString":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"type":"string"}}},"UserBean":{"type":"object","properties":{"userUUID":{"type":"string"},"userId":{"type":"string"},"userName":{"type":"string"},"authToken":{"type":"string"},"refreshToken":{"type":"string"},"deviceToken":{"type":"string"}}},"ResponseUserBean":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/UserBean"}}},"UserAuthenticationData":{"type":"object","properties":{"userLoginData":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/UserLoginData"}}}},"UserLoginData":{"type":"object","properties":{"lastLoginDate":{"type":"string","format":"date-time"},"ipAddress":{"type":"string"},"deviceDetail":{"type":"string"},"numberOfLogins":{"type":"integer","format":"int64"},"numberOfActiveLogins":{"type":"integer","format":"int64"},"authenticationProvider":{"type":"string"},"deviceToken":{"type":"string"},"newUser":{"type":"boolean"}}},"ResponseUserAuthenticationData":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/UserAuthenticationData"}}},"Upstream":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"algorithm":{"type":"string"},"slots":{"type":"integer","format":"int32"},"healthchecks":{"type":"object","additionalProperties":{"type":"object"}},"tags":{"type":"object","additionalProperties":{"type":"object"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},"ResponseUpstream":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/Upstream"}}},"Target":{"type":"object","properties":{"id":{"type":"string"},"target":{"type":"string"},"weight":{"type":"integer","format":"int32"},"tags":{"type":"object","additionalProperties":{"type":"object"}},"upstream":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},"ResponseTarget":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/Target"}}},"Route":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"protocols":{"type":"array","items":{"type":"string"}},"methods":{"type":"array","items":{"type":"string"}},"hosts":{"type":"array","items":{"type":"string"}},"paths":{"type":"array","items":{"type":"string"}},"headers":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"tags":{"type":"array","items":{"type":"string"}},"service":{"$ref":"#/components/schemas/Service"},"snis":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}},"destinations":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}},"regex_priority":{"type":"integer","format":"int32"},"strip_path":{"type":"boolean"},"preserve_host":{"type":"boolean"},"created_at":{"type":"integer","format":"int64"},"updated_at":{"type":"integer","format":"int64"},"response_buffering":{"type":"boolean"},"request_buffering":{"type":"boolean"},"https_redirect_status_code":{"type":"integer","format":"int32"},"path_handling":{"type":"string"}}},"ResponseRoute":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/Route"}}},"JWTPluginConfig":{"type":"object","properties":{"anonymous":{"type":"object"},"secret_is_base64":{"type":"boolean"},"uri_param_names":{"type":"array","items":{"type":"string"}},"cookie_names":{"type":"array","items":{"type":"object"}},"header_names":{"type":"array","items":{"type":"string"}},"claims_to_verify":{"type":"array","items":{"type":"string"}},"maximum_expiration":{"type":"integer","format":"int32"},"key_claim_name":{"type":"string"},"run_on_preflight":{"type":"boolean"}}},"Plugin":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"route":{"type":"object"},"service":{"type":"object"},"consumer":{"type":"object"},"config":{"$ref":"#/components/schemas/JWTPluginConfig"},"protocols":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"},"tags":{"type":"array","items":{"type":"string"}},"created_at":{"type":"integer","format":"int64"}}},"ResponsePlugin":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/Plugin"}}},"Consumer":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"created_at":{"type":"integer","format":"int64"},"custom_id":{"type":"string"}}},"ResponseConsumer":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/Consumer"}}},"ConsumerJWTConfig":{"type":"object","properties":{"id":{"type":"string"},"key":{"type":"string"},"secret":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"consumer":{"$ref":"#/components/schemas/Consumer"},"algorithm":{"type":"string"},"publicKey":{"type":"string"},"created_at":{"type":"integer","format":"int64"},"rsa_public_key":{"type":"string"}}},"ResponseConsumerJWTConfig":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/ConsumerJWTConfig"}}},"TokenBean":{"type":"object","properties":{"authToken":{"type":"string"},"refreshToken":{"type":"string"},"userId":{"type":"string"},"platformType":{"type":"string"}}},"ExternalAuthenticationRequestBean":{"type":"object","properties":{"externalAuthToken":{"type":"string"},"deviceToken":{"type":"string"}},"description":"External authentication request containing token and device info"},"ResponseTokenBean":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/TokenBean"}}},"DesktopCodeResponse":{"type":"object","properties":{"code":{"type":"string"}}},"ResponseDesktopCodeResponse":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/DesktopCodeResponse"}}},"CodeBean":{"type":"object","properties":{"code":{"type":"string"},"deviceToken":{"type":"string"},"redirectHost":{"type":"string"},"platformType":{"type":"string"}},"description":"Authentication code and device token"},"ResponseBoolean":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"type":"boolean"}}},"UserSessionSecretCodeCache":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"}}},"ResponseListUserSessionSecretCodeCache":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserSessionSecretCodeCache"}}}},"UserAuthSecretCodeCache":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"}}},"ResponseListUserAuthSecretCodeCache":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserAuthSecretCodeCache"}}}},"ServiceListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"next":{"type":"string"},"offset":{"type":"string"}}},"ResponseServiceListResponse":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/ServiceListResponse"}}},"ServiceRouteListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Route"}},"next":{"type":"string"},"offset":{"type":"string"}}},"ResponseServiceRouteListResponse":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/ServiceRouteListResponse"}}},"ServicePluginListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Plugin"}},"next":{"type":"string"},"offset":{"type":"string"}}},"ResponseServicePluginListResponse":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/ServicePluginListResponse"}}},"RouteListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Route"}},"next":{"type":"string"},"offset":{"type":"string"}}},"ResponseRouteListResponse":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/RouteListResponse"}}},"PluginListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Plugin"}},"next":{"type":"string"},"offset":{"type":"string"}}},"ResponsePluginListResponse":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/PluginListResponse"}}},"DistributedLockCache":{"type":"object","properties":{"lockKey":{"type":"string"},"instanceId":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"expirationSeconds":{"type":"integer","format":"int64"}}},"ResponseListDistributedLockCache":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DistributedLockCache"}}}},"ConsumerListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Consumer"}},"next":{"type":"string"},"offset":{"type":"string"}}},"ResponseConsumerListResponse":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"$ref":"#/components/schemas/ConsumerListResponse"}}},"ResponseMapStringMapStringString":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}}},"ResponseVoid":{"type":"object","properties":{"fingerPrintSubscription":{"type":"boolean"},"userSubscriptionOwner":{"type":"boolean"},"entityType":{"type":"string"},"entityHeader":{"type":"string"},"paginationInfo":{"$ref":"#/components/schemas/PaginationInfo"},"customErrorCode":{"type":"string"},"data":{"type":"object"}}}}}}