{"openapi":"3.1.0","info":{"title":"DESDEO (fast)API","description":"A rest API for the DESDEO framework.","version":"0.1.0"},"paths":{"/user_info":{"get":{"summary":"Get Current User Info","description":"Return information about the current user.\n\nArgs:\n user (Annotated[User, Depends): user dependency, handled by `get_current_user`.\n\nReturns:\n UserPublic: public information about the current user.","operationId":"get_current_user_info_user_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPublic"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/login":{"post":{"summary":"Login","description":"Login to get an authentication token.\n\nReturn an access token in the response and a cookie storing a refresh token.\n\nArgs:\n form_data (Annotated[OAuth2PasswordRequestForm, Depends()]):\n The form data to authenticate the user.\n session (Annotated[Session, Depends(get_db)]): The database session.\n cookie_max_age (int): the lifetime of the cookie storing the refresh token.","operationId":"login_login_post","parameters":[{"name":"cookie_max_age","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Cookie Max Age"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_login_login_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tokens"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/logout":{"post":{"summary":"Logout","description":"Log the current user out. Deletes the refresh token that was set by logging in.\n\nArgs:\n None\n\nReturns:\n JSONResponse: A response in which the cookies are deleted","operationId":"logout_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/refresh":{"post":{"summary":"Refresh Access Token","description":"Refresh the access token using the refresh token stored in the cookie.\n\nArgs:\n request (Request): The request containing the cookie.\n session (Annotated[Session, Depends(get_db)]): the database session.\n refresh_token (Annotated[Str | None, Cookie()]): the refresh\n token, which is fetched from a cookie included in the response.\n\nReturns:\n dict: A dictionary containing the new access token.","operationId":"refresh_access_token_refresh_post","parameters":[{"name":"refresh_token","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/add_new_dm":{"post":{"summary":"Add New Dm","description":"Add a new user of the role Decision Maker to the database. Requires no login.\n\nArgs:\n form_data (Annotated[OAuth2PasswordRequestForm, Depends()]): The user credentials to add to the database.\n session (Annotated[Session, Depends(get_session)]): the database session.\n\nReturns:\n JSONResponse: A JSON response\n\nRaises:\n HTTPException: if username is already in use or if saving to the database fails for some reason.","operationId":"add_new_dm_add_new_dm_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_add_new_dm_add_new_dm_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/add_new_analyst":{"post":{"summary":"Add New Analyst","description":"Add a new user of the role Analyst to the database. Requires a logged in analyst or an admin.\n\nArgs:\n user: Annotated[User, Depends(get_current_user)]: Logged in user with the role \"analyst\" or \"admin\".\n form_data: (Annotated[OAuth2PasswordRequestForm, Depends()]): The user credentials to add to the database.\n session: (Annotated[Session, Depends(get_session)]): the database session.\n\nReturns:\n JSONResponse: A JSON response\n\nRaises:\n HTTPException: if the logged in user is not an analyst or an admin or if\n username is already in use or if saving to the database fails for some reason.","operationId":"add_new_analyst_add_new_analyst_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_add_new_analyst_add_new_analyst_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/problem/all":{"get":{"summary":"Get Problems","description":"Get information on all the current user's problems.\n\nArgs:\n user (Annotated[User, Depends): the current user.\n\nReturns:\n list[ProblemInfoSmall]: a list of information on all the problems.","operationId":"get_problems_problem_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProblemInfoSmall"},"type":"array","title":"Response Get Problems Problem All Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/problem/all_info":{"get":{"summary":"Get Problems Info","description":"Get detailed information on all the current user's problems.\n\nArgs:\n user (Annotated[User, Depends): the current user.\n\nReturns:\n list[ProblemInfo]: a list of the detailed information on all the problems.","operationId":"get_problems_info_problem_all_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProblemInfo"},"type":"array","title":"Response Get Problems Info Problem All Info Get"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/problem/get":{"post":{"summary":"Get Problem","description":"Get the model of a specific problem.\n\nArgs:\n request (ProblemGetRequest): the request containing the problem's id `problem_id`.\n user (Annotated[User, Depends): the current user.\n session (Annotated[Session, Depends): the database session.\n\nRaises:\n HTTPException: could not find a problem with the given id.\n\nReturns:\n ProblemInfo: detailed information on the requested problem.","operationId":"get_problem_problem_get_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemGetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/problem/add":{"post":{"summary":"Add Problem","description":"Add a newly defined problem to the database.\n\nArgs:\n request (Problem): the JSON representation of the problem.\n user (Annotated[User, Depends): the current user.\n session (Annotated[Session, Depends): the database session.\n\nNote:\n Users with the role 'guest' may not add new problems.\n\nRaises:\n HTTPException: when any issue with defining the problem arises.\n\nReturns:\n ProblemInfo: the information about the problem added.","operationId":"add_problem_problem_add_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemInfo"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/problem/add_json":{"post":{"summary":"Add Problem Json","description":"Adds a problem to the database based on its JSON definition.\n\nArgs:\n json_file (UploadFile): a file in JSON format describing the problem.\n user (Annotated[User, Depends): the usr for which the problem is added.\n session (Annotated[Session, Depends): the database session.\n\nRaises:\n HTTPException: if the provided `json_file` is empty.\n HTTPException: if the content in the provided `json_file` is not in JSON format.__annotations__\n\nReturns:\n ProblemInfo: a description of the added problem.","operationId":"add_problem_json_problem_add_json_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_add_problem_json_problem_add_json_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/problem/get_metadata":{"post":{"summary":"Get Metadata","description":"Fetch specific metadata for a specific problem.\n\nFetch specific metadata for a specific problem. See all the possible\nmetadata types from DESDEO/desdeo/api/models/problem.py Problem Metadata\nsection.\n\nArgs:\n request (MetaDataGetRequest): the requested metadata type.\n user (Annotated[User, Depends]): the current user.\n session (Annotated[Session, Depends]): the database session.\n\nReturns:\n list[ForestProblemMetadata | RepresentativeNonDominatedSolutions]: list containing all the metadata\n defined for the problem with the requested metadata type. If no match is found,\n returns an empty list.","operationId":"get_metadata_problem_get_metadata_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemMetaDataGetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"anyOf":[{"$ref":"#/components/schemas/ForestProblemMetaData"},{"$ref":"#/components/schemas/RepresentativeNonDominatedSolutions"},{"$ref":"#/components/schemas/SolverSelectionMetadata"}]},"type":"array","title":"Response Get Metadata Problem Get Metadata Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/problem/assign_solver":{"post":{"summary":"Select Solver","description":"Assign a specific solver for a problem.\n\nrequest: ProblemSelectSolverRequest: The request containing problem id and string representation of the solver\nuser: Annotated[User, Depends(get_current_user): The user that is logged in.\nsession: Annotated[Session, Depends(get_session)]: The database session.\n\nRaises:\n HTTPException: Unknown solver, unauthorized user\n\nReturns:\n JSONResponse: A simple confirmation.","operationId":"select_solver_problem_assign_solver_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemSelectSolverRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/session/new":{"post":{"summary":"Create New Session","description":".","operationId":"create_new_session_session_new_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractiveSessionBase"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/session/get":{"post":{"summary":"Get Session","description":"Return an interactive session with a given id for the current user.\n\nArgs:\n request (GetSessionRequest): a request containing the id of the session.\n user (Annotated[User, Depends): the current user.\n session (Annotated[Session, Depends): the database session.\n\nRaises:\n HTTPException: could not find an interactive session with the given id\n for the current user.\n\nReturns:\n InteractiveSessionInfo: info on the requested interactive session.","operationId":"get_session_session_get_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InteractiveSessionBase"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/rpm/solve":{"post":{"summary":"Solve Solutions","description":"Runs an iteration of the reference point method.\n\nArgs:\n request (RPMSolveRequest): a request with the needed information to run the method.\n user (Annotated[User, Depends): the current user.\n session (Annotated[Session, Depends): the current database session.\n\nReturns:\n RPMState: a state with information on the results of iterating the reference point method\n once.","operationId":"solve_solutions_method_rpm_solve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RPMSolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RPMState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/nimbus/solve":{"post":{"summary":"Solve Solutions","description":"Solve the problem using the NIMBUS method.","operationId":"solve_solutions_method_nimbus_solve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSClassificationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSClassificationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/nimbus/initialize":{"post":{"summary":"Initialize","description":"Initialize the problem for the NIMBUS method.","operationId":"initialize_method_nimbus_initialize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSInitializationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSInitializationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/nimbus/save":{"post":{"summary":"Save","description":"Save solutions.","operationId":"save_method_nimbus_save_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSSaveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSSaveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/nimbus/intermediate":{"post":{"summary":"Solve Nimbus Intermediate","description":"Solve intermediate solutions by forwarding the request to generic intermediate endpoint with context nimbus.","operationId":"solve_nimbus_intermediate_method_nimbus_intermediate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntermediateSolutionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSIntermediateSolutionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/nimbus/get-or-initialize":{"post":{"summary":"Get Or Initialize","description":"Get the latest NIMBUS state if it exists, or initialize a new one if it doesn't.","operationId":"get_or_initialize_method_nimbus_get_or_initialize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSInitializationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NIMBUSInitializationResponse"},{"$ref":"#/components/schemas/NIMBUSClassificationResponse"},{"$ref":"#/components/schemas/NIMBUSIntermediateSolutionResponse"}],"title":"Response Get Or Initialize Method Nimbus Get Or Initialize Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/nimbus/finalize":{"post":{"summary":"Finalize Nimbus","description":"An endpoint for finishing up the nimbus process.\n\nArgs:\n request (NIMBUSFinalizeRequest): The request containing the final solution, etc.\n user (Annotated[User, Depends): The current user.\n session (Annotated[Session, Depends): The database session.\n\nRaises:\n HTTPException\n\nReturns:\n NIMBUSFinalizeResponse: Response containing state id of the final solution.","operationId":"finalize_nimbus_method_nimbus_finalize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSFinalizeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSFinalizeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/nimbus/delete_save":{"post":{"summary":"Delete Save","description":"Endpoint for deleting saved solutions.\n\nArgs:\n request (NIMBUSDeleteSaveRequest): request containing necessary information for deleting a save\n user (Annotated[User, Depends): the current (logged in) user\n session (Annotated[Session, Depends): database session\n\nRaises:\n HTTPException\n\nReturns:\n NIMBUSDeleteSaveResponse: Response acknowledging the deletion of save and other useful info.","operationId":"delete_save_method_nimbus_delete_save_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSDeleteSaveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NIMBUSDeleteSaveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/emo/iterate":{"post":{"tags":["EMO"],"summary":"Iterate","description":"Starts the EMO method.\n\nArgs:\n request (EMOSolveRequest): The request object containing parameters for the EMO method.\n user (Annotated[User, Depends]): The current user.\n session (Annotated[Session, Depends]): The database session.\n\nRaises:\n HTTPException: If the request is invalid or the EMO method fails.\n\nReturns:\n IterateResponse: A response object containing a list of IDs to be used for websocket communication.\n Also contains the StateDB id where the results will be stored.","operationId":"iterate_method_emo_iterate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EMOIterateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EMOIterateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/emo/fetch":{"post":{"tags":["EMO"],"summary":"Fetch Results","description":"Fetches results from a completed EMO method.\n\nArgs:\n request (EMOFetchRequest): The request object containing parameters for fetching results.\n user (Annotated[User, Depends]): The current user.\n session (Annotated[Session, Depends]): The database session.\n\nRaises:\n HTTPException: If the request is invalid or the EMO method has not completed.\n\nReturns:\n StreamingResponse: A streaming response containing the results of the EMO method.","operationId":"fetch_results_method_emo_fetch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EMOFetchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/emo/fetch_score":{"post":{"tags":["EMO"],"summary":"Fetch Score Bands","description":"Fetches results from a completed EMO method.\n\nArgs:\n request (EMOFetchRequest): The request object containing parameters for fetching results and of the SCORE bands\n visualization.\n user (Annotated[User, Depends]): The current user.\n session (Annotated[Session, Depends]): The database session.\n\nRaises:\n HTTPException: If the request is invalid or the EMO method has not completed.\n\nReturns:\n SCOREBandsResult: The results of the SCORE bands visualization.","operationId":"fetch_score_bands_method_emo_fetch_score_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EMOScoreRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EMOScoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/generic/intermediate":{"post":{"summary":"Solve Intermediate","description":"Solve intermediate solutions between given two solutions.","operationId":"solve_intermediate_method_generic_intermediate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntermediateSolutionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericIntermediateSolutionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/generic/score-bands":{"post":{"summary":"Calculate Score Bands","description":"Calculate SCORE bands parameters from objective data.","operationId":"calculate_score_bands_method_generic_score_bands_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreBandsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreBandsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utopia/":{"post":{"summary":"Get Utopia Data","description":"Request and receive the Utopia map corresponding to the decision variables sent.\n\nArgs:\n request (UtopiaRequest): the set of decision variables and problem for which the utopia forest map is requested\n for.\n user (Annotated[User, Depend(get_current_user)]) the current user\n session (Annotated[Session, Depends(get_session)]) the current database session\nRaises:\n HTTPException:\nReturns:\n UtopiaResponse: the map for the forest, to be rendered in frontend","operationId":"get_utopia_data_utopia__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtopiaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtopiaResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gdm/create_group":{"post":{"summary":"Create Group","description":"Create group.\n\nArgs:\n request (GroupCreateRequest): a request that holds information to be used in creation of the group.\n user (Annotated[User, Depends(get_current_user)]): the current user.\n session (Annotated[Session, Depends(get_session)]): the database session.\n\nReturns:\n JSONResponse: Aknowledgement that the gourp was created\n\nRaises:\n HTTPException","operationId":"create_group_gdm_create_group_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gdm/delete_group":{"post":{"summary":"Delete Group","description":"Delete the group with given ID.\n\nArgs:\n request (GroupInfoRequest): Contains the ID of the group to be deleted\n user (Annotated[User, Depends(get_current_user)]): The user (in this case must be owner for anything to happen)\n session (Annotated[Session, Depends(get_session)]): The database session\n\nReturns:\n JSONResponse: Aknowledgement of the deletion\n\nRaises:\n HTTPException: Insufficient authorization etc.","operationId":"delete_group_gdm_delete_group_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gdm/add_to_group":{"post":{"summary":"Add To Group","description":"Add a user to a group.\n\nArgs:\n request (GroupModifyRequest): Request object that has group and user IDs.\n user (Annotated[User, Depends(get_current_user)]): the current user.\n session (Annotated[Session, Depends(get_session)]): the database session.\n\nReturns:\n JSONResponse: Aknowledge that user has been added to the group\n\nRaises:\n HTTPException: Authorization issues, group or user not found.","operationId":"add_to_group_gdm_add_to_group_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupModifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gdm/remove_from_group":{"post":{"summary":"Remove From Group","description":"Remove user from group.\n\nArgs:\n request (GroupModifyRequest): Request object that has group and user IDs.\n user (Annotated[User, Depends(get_current_user)]): the current user.\n session (Annotated[Session, Depends(get_session)]): the database session.\n\nReturns:\n JSONResponse: Aknowledge that user has been removed from the group.\n\nRaises:\n HTTPException: Authorization issues, group or user not found.","operationId":"remove_from_group_gdm_remove_from_group_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupModifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gdm/get_group_info":{"post":{"summary":"Get Group Info","description":"Get information about the group.\n\nArgs:\n request (GroupInfoRequest): the id of the group for which we desire info on\n session (Annotated[Session, Depends(get_session)]): the database session\n\nReturns:\n GroupPublic: public info of the group\n\nRaises:\n HTTPException: If there's no group with the requests group id","operationId":"get_group_info_gdm_get_group_info_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupPublic"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/gnimbus/initialize":{"post":{"summary":"Gnimbus Initialize","description":"Initialize the problem for GNIMBUS.","operationId":"gnimbus_initialize_gnimbus_initialize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gnimbus/get_latest_results":{"post":{"summary":"Get Latest Results","description":"Get the latest results from group iteration.\n\nArgs:\n request (GroupInfoRequest): essentially just the ID of the group\n user (Annotated[User, Depends(get_current_user)]): Current user\n session (Annotated[Session, Depends(get_session)]): Database session.\n\nReturns:\n GNIMBUSResultResponse: A GNIMBUSResultResponse response containing the latest gnimbus results\n\nRaises:\n HTTPException: Validation errors or no results","operationId":"get_latest_results_gnimbus_get_latest_results_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GNIMBUSResultResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gnimbus/all_iterations":{"post":{"summary":"Full Iteration","description":"Get all results from all iterations of the group.\n\nArgs:\n request (GroupInfoRequest): essentially just the ID of the group\n user (Annotated[User, Depends(get_current_user)]): current user\n session (Annotated[Session, Depends(get_session)]): current session\n\nReturns:\n GNIMBUSAllIterationsResponse: A GNIMBUSAllIterationsResponse response\n containing all the results of the iterations. If last iteration was optimization,\n the first iteration is incomplete (i.e. the voting preferences and voting results are missing)\n\nRaises:\n HTTPException: Validation errors or no results or no states and such.","operationId":"full_iteration_gnimbus_all_iterations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GNIMBUSAllIterationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gnimbus/toggle_phase":{"post":{"summary":"Switch Phase","description":"Switch the phase from one to another. \"learning\", \"crp\", \"decision\" and \"compromise\" phases are allowed.","operationId":"switch_phase_gnimbus_toggle_phase_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GNIMBUSSwitchPhaseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GNIMBUSSwitchPhaseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/gnimbus/get_phase":{"post":{"summary":"Get Phase","description":"Get the current phase of the group.","operationId":"get_phase_gnimbus_get_phase_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupInfoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}},"/method/enautilus/step":{"post":{"summary":"Step","description":".","operationId":"step_method_enautilus_step_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnautilusStepRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ENautilusState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]},{"APIKeyCookie":[]}]}}},"components":{"schemas":{"BinaryFlipMutationOptions":{"properties":{"name":{"type":"string","const":"BinaryFlipMutation","title":"Name","description":"The name of the mutation operator.","default":"BinaryFlipMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to 1/."}},"type":"object","title":"BinaryFlipMutationOptions","description":"Options for Binary Flip Mutation."},"BlendAlphaCrossoverOptions":{"properties":{"name":{"type":"string","const":"BlendAlphaCrossover","title":"Name","description":"The name of the crossover operator.","default":"BlendAlphaCrossover"},"alpha":{"type":"number","minimum":0.0,"title":"Alpha","description":"Non-negative blending factor 'alpha' that controls the extent to which offspring may be sampled outside the interval defined by each pair of parent genes. alpha = 0 restricts children strictly within the parents range, larger alpha allows some outliers.","default":0.5},"xover_probability":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Xover Probability","default":1.0}},"type":"object","title":"BlendAlphaCrossoverOptions","description":"Options for Blend Alpha Crossover."},"Body_add_new_analyst_add_new_analyst_post":{"properties":{"grant_type":{"anyOf":[{"type":"string","pattern":"^password$"},{"type":"null"}],"title":"Grant Type"},"username":{"type":"string","title":"Username"},"password":{"type":"string","format":"password","title":"Password"},"scope":{"type":"string","title":"Scope","default":""},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"password","title":"Client Secret"}},"type":"object","required":["username","password"],"title":"Body_add_new_analyst_add_new_analyst_post"},"Body_add_new_dm_add_new_dm_post":{"properties":{"grant_type":{"anyOf":[{"type":"string","pattern":"^password$"},{"type":"null"}],"title":"Grant Type"},"username":{"type":"string","title":"Username"},"password":{"type":"string","format":"password","title":"Password"},"scope":{"type":"string","title":"Scope","default":""},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"password","title":"Client Secret"}},"type":"object","required":["username","password"],"title":"Body_add_new_dm_add_new_dm_post"},"Body_add_problem_json_problem_add_json_post":{"properties":{"json_file":{"type":"string","format":"binary","title":"Json File"}},"type":"object","required":["json_file"],"title":"Body_add_problem_json_problem_add_json_post"},"Body_login_login_post":{"properties":{"grant_type":{"anyOf":[{"type":"string","pattern":"^password$"},{"type":"null"}],"title":"Grant Type"},"username":{"type":"string","title":"Username"},"password":{"type":"string","format":"password","title":"Password"},"scope":{"type":"string","title":"Scope","default":""},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"password","title":"Client Secret"}},"type":"object","required":["username","password"],"title":"Body_login_login_post"},"BoundedExponentialCrossoverOptions":{"properties":{"name":{"type":"string","const":"BoundedExponentialCrossover","title":"Name","description":"The name of the crossover operator.","default":"BoundedExponentialCrossover"},"xover_probability":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Xover Probability","description":"The crossover probability.","default":1.0},"lambda_":{"type":"number","exclusiveMinimum":0.0,"title":"Lambda","description":"Positive scale λ for the exponential distribution.","default":1.0}},"type":"object","title":"BoundedExponentialCrossoverOptions","description":"Options for Bounded Exponential Crossover."},"BoundedPolynomialMutationOptions":{"properties":{"name":{"type":"string","const":"BoundedPolynomialMutation","title":"Name","description":"The name of the mutation operator.","default":"BoundedPolynomialMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to\n1/."},"distribution_index":{"type":"number","exclusiveMinimum":0.0,"title":"Distribution Index","description":"The distribution index.","default":20.0}},"type":"object","title":"BoundedPolynomialMutationOptions","description":"Options for Bounded Polynomial Mutation."},"ClipRepairOptions":{"properties":{"name":{"type":"string","const":"ClipRepair","title":"Name","description":"Clip the solutions to be within the variable bounds.","default":"ClipRepair"},"lower_bounds":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Lower Bounds","description":"Lower bounds for the decision variables. If none, the lower bounds from the problem will be used."},"upper_bounds":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Upper Bounds","description":"Upper bounds for the decision variables. If none, the upper bounds from the problem will be used."}},"type":"object","title":"ClipRepairOptions","description":"Options for Clip Repair."},"CompositeTerminatorOptions":{"properties":{"name":{"type":"string","const":"CompositeTerminator","title":"Name","description":"The name of the termination operator.","default":"CompositeTerminator"},"terminators":{"items":{"anyOf":[{"$ref":"#/components/schemas/MaxEvaluationsTerminatorOptions"},{"$ref":"#/components/schemas/MaxGenerationsTerminatorOptions"},{"$ref":"#/components/schemas/MaxTimeTerminatorOptions"},{"$ref":"#/components/schemas/ExternalCheckTerminatorOptions"}]},"type":"array","title":"Terminators","description":"List of terminators."},"mode":{"type":"string","enum":["all","any"],"title":"Mode","description":"Whether to use logical AND or OR.","default":"any"}},"type":"object","title":"CompositeTerminatorOptions","description":"Options for composite terminator operator."},"ConstantDB":{"properties":{"name":{"type":"string","title":"Name","description":"Descriptive name of the constant. This can be used in UI and visualizations. Example: 'maximum cost'."},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the constant. This will be used in the rest of the problem definition. It may also be used in UIs and visualizations. Example: 'c_1'."},"value":{"type":"number","title":"Value","description":"The value of the constant."},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["name","symbol","value"],"title":"ConstantDB","description":"The SQLModel equivalent to `Constant`."},"ConstraintDB":{"properties":{"func":{"items":{},"type":"array","title":"Func"},"scenario_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scenario Keys"},"surrogates":{"anyOf":[{"items":{"type":"string","format":"path"},"type":"array"},{"type":"null"}],"title":"Surrogates"},"simulator_path":{"anyOf":[{"type":"string","format":"path"},{"$ref":"#/components/schemas/Url"},{"type":"null"}],"title":"Simulator Path"},"name":{"type":"string","title":"Name","description":"Descriptive name of the constraint. This can be used in UI and visualizations. Example: 'maximum length'."},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the constraint. This will be used in the rest of the problem definition. It may also be used in UIs and visualizations. Example: 'g_1'."},"cons_type":{"$ref":"#/components/schemas/ConstraintTypeEnum","description":"The type of the constraint. Constraints are assumed to be in a standard form where the supplied 'func' expression is on the left hand side of the constraint's expression, and on the right hand side a zero value is assume. The comparison between the left hand side and right hand side is either and quality comparison ('=') or lesser than equal comparison ('<=')."},"is_linear":{"type":"boolean","title":"Is Linear","description":"Whether the constraint is linear or not. Defaults to True, e.g., a linear constraint is assumed.","default":true},"is_convex":{"type":"boolean","title":"Is Convex","description":"Whether the function expression is convex or not (non-convex). Defaults to `False`.","default":false},"is_twice_differentiable":{"type":"boolean","title":"Is Twice Differentiable","description":"Whether the function expression is twice differentiable or not. Defaults to `False`","default":false},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["func","name","symbol","cons_type"],"title":"ConstraintDB","description":"The SQLModel equivalent to `Constraint`."},"ConstraintTypeEnum":{"type":"string","enum":["=","<="],"title":"ConstraintTypeEnum","description":"An enumerator for supported constraint expression types."},"CreateSessionRequest":{"properties":{"info":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Info"}},"type":"object","title":"CreateSessionRequest","description":"Model of the request to create a new session."},"CustomClusterOptions":{"properties":{"name":{"type":"string","title":"Name","description":"Custom user-provided clusters.","default":"Custom"},"clusters":{"items":{"type":"integer"},"type":"array","title":"Clusters","description":"List of cluster IDs (one for each solution) indicating the cluster to which each solution belongs."}},"type":"object","required":["clusters"],"title":"CustomClusterOptions","description":"Options for custom clustering provided by the user."},"DBSCANOptions":{"properties":{"name":{"type":"string","title":"Name","description":"DBSCAN clustering algorithm.","default":"DBSCAN"}},"type":"object","title":"DBSCANOptions","description":"Options for DBSCAN clustering algorithm."},"DesirableRangesOptions":{"properties":{"name":{"type":"string","const":"preferred_ranges","title":"Name","description":"The name of the preferred ranges option.","default":"preferred_ranges"},"aspiration_levels":{"additionalProperties":{"type":"number"},"type":"object","title":"Aspiration Levels","description":"The aspiration levels as a dictionary with objective function symbols as the keys."},"reservation_levels":{"additionalProperties":{"type":"number"},"type":"object","title":"Reservation Levels","description":"The reservation levels as a dictionary with objective function symbols as the keys."},"method":{"type":"string","enum":["Hakanen","DF transformation"],"title":"Method","description":"The method for handling the desirable ranges.","default":"Hakanen"},"desirability_levels":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2,"title":"Desirability Levels","description":"The desirability levels as a tuple (high, low). Used if method is DF transformation. If None, default levels (0.9, 0.1) are used.","default":[0.9,0.1]}},"type":"object","required":["aspiration_levels","reservation_levels"],"title":"DesirableRangesOptions","description":"Options for providing desirable ranges for an EA."},"DimensionClusterOptions":{"properties":{"name":{"type":"string","title":"Name","description":"Clustering by one of the dimensions.","default":"DimensionCluster"},"dimension_name":{"type":"string","title":"Dimension Name","description":"Dimension to use for clustering."},"n_clusters":{"type":"integer","title":"N Clusters","description":"Number of clusters to use. Defaults to 5.","default":5},"kind":{"type":"string","enum":["EqualWidth","EqualFrequency"],"title":"Kind","description":"Kind of clustering to use. Either \"EqualWidth\", which divides the dimension range into equal width intervals,\nor \"EqualFrequency\", which divides the dimension values into intervals with equal number of solutions.\nDefaults to \"EqualWidth\".","default":"EqualWidth"}},"type":"object","required":["dimension_name"],"title":"DimensionClusterOptions","description":"Options for clustering by one of the objectives/decision variables."},"DiscreteRepresentationDB":{"properties":{"non_dominated":{"type":"boolean","title":"Non Dominated","default":false},"variable_values":{"additionalProperties":{"items":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"boolean"}]},"type":"array"},"type":"object","title":"Variable Values"},"objective_values":{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object","title":"Objective Values"},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["variable_values","objective_values"],"title":"DiscreteRepresentationDB","description":"The SQLModel equivalent to `DiscreteRepresentation`."},"DistanceFormula":{"type":"integer","enum":[1,2],"title":"DistanceFormula","description":"Distance formulas supported by SCORE bands. See the paper for details."},"EMOFetchRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id","description":"Database ID of the problem to solve."},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id","description":"State ID of the parent state, if any. Should be None if this is the first state in a session."},"num_solutions":{"type":"integer","title":"Num Solutions","description":"Number of solutions to fetch. If 0, fetch all solutions.","default":0}},"type":"object","required":["problem_id"],"title":"EMOFetchRequest","description":"Model of the request to fetch solutions from an EMO method."},"EMOIterateRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id","description":"Database ID of the problem to solve."},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id","description":"State ID of the parent state, if any. Should be None if this is the first state in a session."},"template_options":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/Template1Options"},{"$ref":"#/components/schemas/Template2Options"}]},"type":"array"},{"type":"null"}],"title":"Template Options","description":"Options for the template to use. A list of options can be given if multiple templates are used in parallel."},"preference_options":{"anyOf":[{"$ref":"#/components/schemas/ReferencePointOptions"},{"$ref":"#/components/schemas/DesirableRangesOptions"},{"$ref":"#/components/schemas/PreferredSolutionsOptions"},{"$ref":"#/components/schemas/NonPreferredSolutionsOptions"},{"type":"null"}],"title":"Preference Options","description":"Options for the preference handling."}},"type":"object","required":["problem_id"],"title":"EMOIterateRequest","description":"Model of the request to iterate an EMO method."},"EMOIterateResponse":{"properties":{"method_ids":{"items":{"type":"string"},"type":"array","title":"Method Ids","description":"IDs of the EMO methods using websockets to get/send updates."},"client_id":{"type":"string","title":"Client Id","description":"Client ID to use when connecting to the websockets."},"state_id":{"type":"integer","title":"State Id","description":"The state ID of the newly created state."}},"type":"object","required":["method_ids","client_id","state_id"],"title":"EMOIterateResponse","description":"Model of the response to an EMO iterate request."},"EMOScoreRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id","description":"Database ID of the problem to solve."},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id","description":"State ID of the parent state, if any."},"config":{"anyOf":[{"$ref":"#/components/schemas/SCOREBandsConfig"},{"type":"null"}],"description":"Configuration for the SCORE bands visualization."},"solution_ids":{"items":{"type":"integer"},"type":"array","title":"Solution Ids","description":"List of solution IDs to score."}},"type":"object","required":["problem_id","solution_ids"],"title":"EMOScoreRequest","description":"Request model for getting SCORE bands visualization data from state."},"EMOScoreResponse":{"properties":{"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id","description":"The state ID of the newly created state."},"result":{"$ref":"#/components/schemas/SCOREBandsResult"}},"type":"object","required":["result"],"title":"EMOScoreResponse","description":"Model of the response to an EMO score request."},"ENautilusResult":{"properties":{"current_iteration":{"type":"integer","title":"Current Iteration","description":"Number of the current iteration."},"iterations_left":{"type":"integer","title":"Iterations Left","description":"Number of iterations left."},"intermediate_points":{"items":{"additionalProperties":{"type":"number"},"type":"object"},"type":"array","title":"Intermediate Points","description":"New intermediate points"},"reachable_best_bounds":{"items":{"additionalProperties":{"type":"number"},"type":"object"},"type":"array","title":"Reachable Best Bounds","description":"Best bounds of the objective function values reachable from each intermediate point."},"reachable_worst_bounds":{"items":{"additionalProperties":{"type":"number"},"type":"object"},"type":"array","title":"Reachable Worst Bounds","description":"Worst bounds of the objective function values reachable from each intermediate point."},"closeness_measures":{"items":{"type":"number"},"type":"array","title":"Closeness Measures","description":"Closeness measures of each intermediate point."},"reachable_point_indices":{"items":{"items":{"type":"integer"},"type":"array"},"type":"array","title":"Reachable Point Indices","description":"Indices of the reachable points from each intermediate point."}},"type":"object","required":["current_iteration","iterations_left","intermediate_points","reachable_best_bounds","reachable_worst_bounds","closeness_measures","reachable_point_indices"],"title":"ENautilusResult","description":"The result of an iteration of the E-NAUTILUS method."},"ENautilusState":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"non_dominated_solutions_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Non Dominated Solutions Id"},"current_iteration":{"type":"integer","title":"Current Iteration"},"iterations_left":{"type":"integer","title":"Iterations Left"},"selected_point":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Selected Point"},"reachable_point_indices":{"items":{"type":"integer"},"type":"array","title":"Reachable Point Indices"},"number_of_intermediate_points":{"type":"integer","title":"Number Of Intermediate Points"},"enautilus_results":{"$ref":"#/components/schemas/ENautilusResult"}},"type":"object","required":["current_iteration","iterations_left","number_of_intermediate_points","enautilus_results"],"title":"ENautilusState","description":"E-NAUTILUS: one stepping iteration."},"EnautilusStepRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id"},"representative_solutions_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Representative Solutions Id"},"current_iteration":{"type":"integer","title":"Current Iteration","description":"The number of the current iteration."},"iterations_left":{"type":"integer","title":"Iterations Left","description":"The number of iterations left."},"selected_point":{"additionalProperties":{"type":"number"},"type":"object","title":"Selected Point","description":"The selected intermediate point. If first iteration, set this to be the (approximated) nadir point."},"reachable_point_indices":{"items":{"type":"integer"},"type":"array","title":"Reachable Point Indices","description":"The indices indicating the point on the non-dominated set that are reachable from the currently selected point."},"number_of_intermediate_points":{"type":"integer","title":"Number Of Intermediate Points","description":"The number of intermediate points to be generated."}},"type":"object","required":["problem_id","current_iteration","iterations_left","selected_point","reachable_point_indices","number_of_intermediate_points"],"title":"EnautilusStepRequest","description":"Model of the request to the E-NAUTILUS method."},"EndProcessPreference":{"properties":{"method":{"type":"string","title":"Method","default":"end"},"success":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Success"},"set_preferences":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Set Preferences"}},"type":"object","required":["success","set_preferences"],"title":"EndProcessPreference","description":"A model for determining if everyone is happy with current solution so we can end the process."},"ExternalCheckTerminatorOptions":{"properties":{"name":{"type":"string","const":"ExternalCheckTerminator","title":"Name","description":"The name of the termination operator.","default":"ExternalCheckTerminator"}},"type":"object","title":"ExternalCheckTerminatorOptions","description":"Options for external check terminator operator. Note that the check function must be provided separately."},"ExtraFunctionDB":{"properties":{"func":{"items":{},"type":"array","title":"Func"},"scenario_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scenario Keys"},"surrogates":{"anyOf":[{"items":{"type":"string","format":"path"},"type":"array"},{"type":"null"}],"title":"Surrogates"},"simulator_path":{"anyOf":[{"type":"string","format":"path"},{"$ref":"#/components/schemas/Url"},{"type":"null"}],"title":"Simulator Path"},"name":{"type":"string","title":"Name","description":"Descriptive name of the function. Example: 'normalization'."},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the function. This will be used in the rest of the problem definition. It may also be used in UIs and visualizations. Example: 'avg'."},"is_linear":{"type":"boolean","title":"Is Linear","description":"Whether the function expression is linear or not. Defaults to `False`.","default":false},"is_convex":{"type":"boolean","title":"Is Convex","description":"Whether the function expression is convex or not (non-convex). Defaults to `False`.","default":false},"is_twice_differentiable":{"type":"boolean","title":"Is Twice Differentiable","description":"Whether the function expression is twice differentiable or not. Defaults to `False`","default":false},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["func","name","symbol"],"title":"ExtraFunctionDB","description":"The SQLModel equivalent to `ExtraFunction`."},"ForestProblemMetaData":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"metadata_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Metadata Id"},"metadata_type":{"type":"string","title":"Metadata Type","default":"forest_problem_metadata"},"map_json":{"type":"string","title":"Map Json"},"schedule_dict":{"additionalProperties":true,"type":"object","title":"Schedule Dict"},"years":{"items":{"type":"string"},"type":"array","title":"Years"},"stand_id_field":{"type":"string","title":"Stand Id Field"},"stand_descriptor":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Stand Descriptor"},"compensation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Compensation"}},"type":"object","required":["map_json","schedule_dict","years","stand_id_field"],"title":"ForestProblemMetaData","description":"A problem metadata class to hold UTOPIA forest problem specific information."},"FullIteration":{"properties":{"phase":{"type":"string","title":"Phase"},"optimization_preferences":{"anyOf":[{"$ref":"#/components/schemas/OptimizationPreference"},{"type":"null"}]},"voting_preferences":{"anyOf":[{"$ref":"#/components/schemas/VotingPreference"},{"$ref":"#/components/schemas/EndProcessPreference"},{"type":"null"}],"title":"Voting Preferences"},"starting_result":{"anyOf":[{"$ref":"#/components/schemas/SolutionReference"},{"type":"null"}]},"common_results":{"items":{"$ref":"#/components/schemas/SolutionReference"},"type":"array","title":"Common Results"},"user_results":{"items":{"$ref":"#/components/schemas/SolutionReference"},"type":"array","title":"User Results"},"personal_result_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Personal Result Index"},"final_result":{"anyOf":[{"$ref":"#/components/schemas/SolutionReference"},{"type":"null"}]}},"type":"object","required":["phase","optimization_preferences","voting_preferences","starting_result","common_results","user_results","personal_result_index","final_result"],"title":"FullIteration","description":"A full iteration item containing results from a complete or incomplete iteration."},"GMMOptions":{"properties":{"name":{"type":"string","title":"Name","description":"Gaussian Mixture Model clustering algorithm.","default":"GMM"},"scoring_method":{"type":"string","enum":["BIC","silhouette"],"title":"Scoring Method","description":"Scoring method to use for GMM. Either \"BIC\" or \"silhouette\". Defaults to \"silhouette\".\nThis option determines how the number of clusters is chosen.","default":"silhouette"}},"type":"object","title":"GMMOptions","description":"Options for Gaussian Mixture Model clustering algorithm."},"GNIMBUSAllIterationsResponse":{"properties":{"all_full_iterations":{"items":{"$ref":"#/components/schemas/FullIteration"},"type":"array","title":"All Full Iterations"}},"type":"object","required":["all_full_iterations"],"title":"GNIMBUSAllIterationsResponse","description":"The response model for getting all found solutions among others."},"GNIMBUSResultResponse":{"properties":{"method":{"type":"string","title":"Method"},"phase":{"type":"string","title":"Phase"},"preferences":{"anyOf":[{"$ref":"#/components/schemas/VotingPreference"},{"$ref":"#/components/schemas/OptimizationPreference"}],"title":"Preferences"},"common_results":{"items":{"$ref":"#/components/schemas/SolutionReference"},"type":"array","title":"Common Results"},"user_results":{"items":{"$ref":"#/components/schemas/SolutionReference"},"type":"array","title":"User Results"},"personal_result_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Personal Result Index"}},"type":"object","required":["method","phase","preferences","common_results","user_results","personal_result_index"],"title":"GNIMBUSResultResponse","description":"The response for getting GNIMBUS results."},"GNIMBUSSwitchPhaseRequest":{"properties":{"group_id":{"type":"integer","title":"Group Id"},"new_phase":{"type":"string","title":"New Phase"}},"type":"object","required":["group_id","new_phase"],"title":"GNIMBUSSwitchPhaseRequest","description":"A request for a certain phase. Comes from the group owner/analyst."},"GNIMBUSSwitchPhaseResponse":{"properties":{"old_phase":{"type":"string","title":"Old Phase"},"new_phase":{"type":"string","title":"New Phase"}},"type":"object","required":["old_phase","new_phase"],"title":"GNIMBUSSwitchPhaseResponse","description":"A response for the above request."},"GenericIntermediateSolutionResponse":{"properties":{"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id","description":"The newly created state id"},"reference_solution_1":{"$ref":"#/components/schemas/SolutionReferenceResponse","description":"The first solution used when computing intermediate solutions."},"reference_solution_2":{"$ref":"#/components/schemas/SolutionReferenceResponse","description":"The second solution used when computing intermediate solutions."},"intermediate_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"Intermediate Solutions","description":"The intermediate solutions computed."}},"type":"object","required":["state_id","reference_solution_1","reference_solution_2","intermediate_solutions"],"title":"GenericIntermediateSolutionResponse","description":"The response from computing intermediate values."},"GetSessionRequest":{"properties":{"session_id":{"type":"integer","title":"Session Id"}},"type":"object","required":["session_id"],"title":"GetSessionRequest","description":"Model of the request to get a specific session."},"GroupCreateRequest":{"properties":{"group_name":{"type":"string","title":"Group Name"},"problem_id":{"type":"integer","title":"Problem Id"}},"type":"object","required":["group_name","problem_id"],"title":"GroupCreateRequest","description":"Used for requesting a group to be created."},"GroupInfoRequest":{"properties":{"group_id":{"type":"integer","title":"Group Id"}},"type":"object","required":["group_id"],"title":"GroupInfoRequest","description":"Class for requesting group information."},"GroupModifyRequest":{"properties":{"group_id":{"type":"integer","title":"Group Id"},"user_id":{"type":"integer","title":"User Id"}},"type":"object","required":["group_id","user_id"],"title":"GroupModifyRequest","description":"Used for adding a user into group and removing a user from group."},"GroupPublic":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"owner_id":{"type":"integer","title":"Owner Id"},"user_ids":{"items":{"type":"integer"},"type":"array","title":"User Ids"},"problem_id":{"type":"integer","title":"Problem Id"}},"type":"object","required":["id","name","owner_id","user_ids","problem_id"],"title":"GroupPublic","description":"Response model for Group."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IBEASelectorOptions":{"properties":{"name":{"type":"string","const":"IBEASelector","title":"Name","description":"The name of the selection operator.","default":"IBEASelector"},"population_size":{"type":"integer","exclusiveMinimum":0.0,"title":"Population Size","description":"The population size."},"kappa":{"type":"number","title":"Kappa","description":"The kappa parameter for IBEA.","default":0.05},"binary_indicator":{"type":"string","enum":["eps","hv"],"title":"Binary Indicator","description":"The binary indicator for IBEA.","default":"eps"}},"type":"object","required":["population_size"],"title":"IBEASelectorOptions","description":"Options for IBEA Selection."},"IntegerRandomMutationOptions":{"properties":{"name":{"type":"string","const":"IntegerRandomMutation","title":"Name","description":"The name of the mutation operator.","default":"IntegerRandomMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to 1/."}},"type":"object","title":"IntegerRandomMutationOptions","description":"Options for Integer Random Mutation."},"InteractiveSessionBase":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"info":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Info"}},"type":"object","required":["id","user_id","info"],"title":"InteractiveSessionBase","description":"The base model for representing interactive sessions."},"IntermediateSolutionRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"scalarization_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Scalarization Options"},"solver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solver"},"solver_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Solver Options"},"num_desired":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Desired","default":1},"reference_solution_1":{"$ref":"#/components/schemas/SolutionInfo"},"reference_solution_2":{"$ref":"#/components/schemas/SolutionInfo"}},"type":"object","required":["problem_id","reference_solution_1","reference_solution_2"],"title":"IntermediateSolutionRequest","description":"Model of the request to solve intermediate solutions between two solutions."},"KMeansOptions":{"properties":{"name":{"type":"string","title":"Name","description":"KMeans clustering algorithm.","default":"KMeans"},"n_clusters":{"type":"integer","title":"N Clusters","description":"Number of clusters to use. Defaults to 5.","default":5}},"type":"object","title":"KMeansOptions","description":"Options for KMeans clustering algorithm."},"LHSGeneratorOptions":{"properties":{"n_points":{"type":"integer","exclusiveMinimum":0.0,"title":"N Points","description":"The number of points to generate for the initial population."},"name":{"type":"string","const":"LHSGenerator","title":"Name","description":"The name of the generator.","default":"LHSGenerator"}},"type":"object","required":["n_points"],"title":"LHSGeneratorOptions","description":"Options for Latin Hypercube Sampling (LHS) generator."},"LocalCrossoverOptions":{"properties":{"name":{"type":"string","const":"LocalCrossover","title":"Name","description":"The name of the crossover operator.","default":"LocalCrossover"},"xover_probability":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Xover Probability","description":"The crossover probability.","default":1.0}},"type":"object","title":"LocalCrossoverOptions","description":"Options for Local Crossover."},"MPTMutationOptions":{"properties":{"name":{"type":"string","const":"MPTMutation","title":"Name","description":"The name of the mutation operator.","default":"MPTMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to 1/."},"mutation_exponent":{"type":"number","minimum":0.0,"title":"Mutation Exponent","description":"Controls strength of small mutation (larger means smaller mutations).","default":2.0}},"type":"object","title":"MPTMutationOptions","description":"Options for MPT Mutation."},"MaxEvaluationsTerminatorOptions":{"properties":{"name":{"type":"string","const":"MaxEvaluationsTerminator","title":"Name","description":"The name of the termination operator.","default":"MaxEvaluationsTerminator"},"max_evaluations":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Evaluations","description":"The maximum number of evaluations allowed.","default":10000}},"type":"object","title":"MaxEvaluationsTerminatorOptions","description":"Options for max evaluations terminator operator."},"MaxGenerationsTerminatorOptions":{"properties":{"name":{"type":"string","const":"MaxGenerationsTerminator","title":"Name","description":"The name of the termination operator.","default":"MaxGenerationsTerminator"},"max_generations":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Generations","description":"The maximum number of generations allowed.","default":100}},"type":"object","title":"MaxGenerationsTerminatorOptions","description":"Options for max generations terminator operator."},"MaxTimeTerminatorOptions":{"properties":{"name":{"type":"string","const":"MaxTimeTerminator","title":"Name","description":"The name of the termination operator.","default":"MaxTimeTerminator"},"max_time":{"type":"number","exclusiveMinimum":0.0,"title":"Max Time","description":"The maximum time allowed (in seconds).","default":30.0}},"type":"object","title":"MaxTimeTerminatorOptions","description":"Options for max time terminator operator."},"MixedIntegerRandomMutationOptions":{"properties":{"name":{"type":"string","const":"MixedIntegerRandomMutation","title":"Name","description":"The name of the mutation operator.","default":"MixedIntegerRandomMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to 1/."}},"type":"object","title":"MixedIntegerRandomMutationOptions","description":"Options for Mixed Integer Random Mutation."},"NIMBUSClassificationRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id"},"scalarization_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Scalarization Options"},"solver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solver"},"solver_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Solver Options"},"preference":{"$ref":"#/components/schemas/ReferencePoint"},"current_objectives":{"additionalProperties":{"type":"number"},"type":"object","title":"Current Objectives","description":"The objectives used for iteration."},"num_desired":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Desired","default":1}},"type":"object","required":["problem_id","current_objectives"],"title":"NIMBUSClassificationRequest","description":"Model of the request to the nimbus method."},"NIMBUSClassificationResponse":{"properties":{"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id","description":"The newly created state id"},"previous_preference":{"$ref":"#/components/schemas/ReferencePoint","description":"The previous preference used."},"previous_objectives":{"additionalProperties":{"type":"number"},"type":"object","title":"Previous Objectives","description":"The previous solutions objectives used for iteration."},"current_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"Current Solutions","description":"The solutions from the current iteration of nimbus."},"saved_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"Saved Solutions","description":"The best candidate solutions saved by the decision maker."},"all_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"All Solutions","description":"All solutions generated by NIMBUS in all iterations."}},"type":"object","required":["state_id","previous_preference","previous_objectives","current_solutions","saved_solutions","all_solutions"],"title":"NIMBUSClassificationResponse","description":"The response from NIMBUS classification endpoint."},"NIMBUSDeleteSaveRequest":{"properties":{"state_id":{"type":"integer","title":"State Id","description":"The ID of the save state."},"solution_index":{"type":"integer","title":"Solution Index","description":"The ID of the solution within the above state."}},"type":"object","required":["state_id","solution_index"],"title":"NIMBUSDeleteSaveRequest","description":"Request model for deletion of a saved solution."},"NIMBUSDeleteSaveResponse":{"properties":{"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["message"],"title":"NIMBUSDeleteSaveResponse","description":"Response of NIMBUS save deletion."},"NIMBUSFinalizeRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id"},"solution_info":{"$ref":"#/components/schemas/SolutionInfo"},"preferences":{"$ref":"#/components/schemas/ReferencePoint"}},"type":"object","required":["problem_id","solution_info","preferences"],"title":"NIMBUSFinalizeRequest","description":"Request model for finalizing the NIMBUS procedure."},"NIMBUSFinalizeResponse":{"properties":{"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id","description":"The id of the newest state"},"final_solution":{"$ref":"#/components/schemas/SolutionReferenceResponse","description":"The final solution"}},"type":"object","required":["state_id","final_solution"],"title":"NIMBUSFinalizeResponse","description":"The response from NIMBUS finish endpoint."},"NIMBUSInitializationRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id"},"starting_point":{"anyOf":[{"$ref":"#/components/schemas/ReferencePoint"},{"$ref":"#/components/schemas/SolutionInfo"},{"type":"null"}],"title":"Starting Point"},"scalarization_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Scalarization Options"},"solver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solver"},"solver_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Solver Options"}},"type":"object","required":["problem_id"],"title":"NIMBUSInitializationRequest","description":"Model of the request to the nimbus method."},"NIMBUSInitializationResponse":{"properties":{"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id","description":"The newly created state id"},"current_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"Current Solutions","description":"The solutions from the current interation of nimbus."},"saved_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"Saved Solutions","description":"The best candidate solutions saved by the decision maker."},"all_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"All Solutions","description":"All solutions generated by NIMBUS in all iterations."}},"type":"object","required":["state_id","current_solutions","saved_solutions","all_solutions"],"title":"NIMBUSInitializationResponse","description":"The response from NIMBUS classification endpoint."},"NIMBUSIntermediateSolutionResponse":{"properties":{"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id","description":"The newly created state id"},"reference_solution_1":{"additionalProperties":{"type":"number"},"type":"object","title":"Reference Solution 1","description":"The first solution used when computing intermediate points."},"reference_solution_2":{"additionalProperties":{"type":"number"},"type":"object","title":"Reference Solution 2","description":"The second solution used when computing intermediate points."},"current_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"Current Solutions","description":"The solutions from the current iteration of NIMBUS."},"saved_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"Saved Solutions","description":"The best candidate solutions saved by the decision maker."},"all_solutions":{"items":{"$ref":"#/components/schemas/SolutionReferenceResponse"},"type":"array","title":"All Solutions","description":"All solutions generated by NIMBUS in all iterations."}},"type":"object","required":["state_id","reference_solution_1","reference_solution_2","current_solutions","saved_solutions","all_solutions"],"title":"NIMBUSIntermediateSolutionResponse","description":"The response from NIMBUS classification endpoint."},"NIMBUSSaveRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id"},"solution_info":{"items":{"$ref":"#/components/schemas/SolutionInfo"},"type":"array","title":"Solution Info"}},"type":"object","required":["problem_id","solution_info"],"title":"NIMBUSSaveRequest","description":"Request model for saving solutions from any method's state."},"NIMBUSSaveResponse":{"properties":{"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id","description":"The id of the newest state"}},"type":"object","required":["state_id"],"title":"NIMBUSSaveResponse","description":"The response from NIMBUS save endpoint."},"NSGA3SelectorOptions":{"properties":{"name":{"type":"string","const":"NSGA3Selector","title":"Name","description":"The name of the selection operator.","default":"NSGA3Selector"},"reference_vector_options":{"$ref":"#/components/schemas/ReferenceVectorOptions","description":"Options for the reference vectors.","default":{"adaptation_frequency":0,"creation_type":"simplex","vector_type":"spherical","number_of_vectors":200,"adaptation_distance":0.2}},"invert_reference_vectors":{"type":"boolean","title":"Invert Reference Vectors","description":"Whether to invert the reference vectors (inverted triangle).","default":false}},"type":"object","title":"NSGA3SelectorOptions","description":"Options for NSGA-III Selection."},"NoRepairOptions":{"properties":{"name":{"type":"string","const":"NoRepair","title":"Name","description":"Do not apply any repair to the solutions.","default":"NoRepair"}},"type":"object","title":"NoRepairOptions","description":"Options for No Repair."},"NonPreferredSolutionsOptions":{"properties":{"name":{"type":"string","const":"non_preferred_solutions","title":"Name","description":"The name of the non-preferred solutions option.","default":"non_preferred_solutions"},"preference":{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object","title":"Preference","description":"The non-preferred solutions as a dictionary with objective function symbols as the keys."},"method":{"type":"string","const":"Hakanen","title":"Method","description":"The method for handling the non-preferred solutions.","default":"Hakanen"}},"type":"object","required":["preference"],"title":"NonPreferredSolutionsOptions","description":"Options for providing non-preferred solutions for an EA."},"NonUniformMutationOptions":{"properties":{"name":{"type":"string","const":"NonUniformMutation","title":"Name","description":"The name of the mutation operator.","default":"NonUniformMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to 1/."},"max_generations":{"type":"integer","exclusiveMinimum":0.0,"title":"Max Generations","description":"Maximum number of generations in the evolutionary run. Used to scale mutation decay."},"b":{"type":"number","minimum":0.0,"title":"B","description":"Non-uniform mutation decay parameter. Higher values causefaster reduction in mutation strength over generations.","default":5.0}},"type":"object","required":["max_generations"],"title":"NonUniformMutationOptions","description":"Options for Non-Uniform Mutation."},"ObjectiveDB":{"properties":{"func":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Func"},"scenario_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scenario Keys"},"surrogates":{"anyOf":[{"items":{"type":"string","format":"path"},"type":"array"},{"type":"null"}],"title":"Surrogates"},"simulator_path":{"anyOf":[{"type":"string","format":"path"},{"$ref":"#/components/schemas/Url"},{"type":"null"}],"title":"Simulator Path"},"name":{"type":"string","title":"Name","description":"Descriptive name of the objective function. This can be used in UI and visualizations. Example: 'time'."},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the objective function. This will be used in the rest of the problem definition. It may also be used in UIs and visualizations. Example: 'f_1'."},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit","description":"The unit of the objective function. This is optional. Used in UIs and visualizations. Example: 'seconds' or 'millions of hectares'."},"maximize":{"type":"boolean","title":"Maximize","description":"Whether the objective function is to be maximized or minimized.","default":false},"ideal":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ideal","description":"Ideal value of the objective. This is optional."},"nadir":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nadir","description":"Nadir value of the objective. This is optional."},"objective_type":{"$ref":"#/components/schemas/ObjectiveTypeEnum","description":"The type of objective function. 'analytical' means the objective function value is calculated based on 'func'. 'data_based' means the objective function value should be retrieved from a table. In case of 'data_based' objective function, the 'func' field is ignored. Defaults to 'analytical'.","default":"analytical"},"is_linear":{"type":"boolean","title":"Is Linear","description":"Whether the function expression is linear or not. Defaults to `False`.","default":false},"is_convex":{"type":"boolean","title":"Is Convex","description":"Whether the function expression is convex or not (non-convex). Defaults to `False`.","default":false},"is_twice_differentiable":{"type":"boolean","title":"Is Twice Differentiable","description":"Whether the function expression is twice differentiable or not. Defaults to `False`","default":false},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["func","name","symbol"],"title":"ObjectiveDB","description":"The SQLModel equivalent to `Objective`."},"ObjectiveTypeEnum":{"type":"string","enum":["analytical","data_based","simulator","surrogate"],"title":"ObjectiveTypeEnum","description":"An enumerator for supported objective function types."},"OptimizationPreference":{"properties":{"method":{"type":"string","title":"Method","default":"optimization"},"phase":{"type":"string","title":"Phase","default":"learning"},"set_preferences":{"additionalProperties":{"$ref":"#/components/schemas/ReferencePoint"},"type":"object","title":"Set Preferences"}},"type":"object","required":["set_preferences"],"title":"OptimizationPreference","description":"An optimization preference class. As for the method and phase, see GNIMBUS for details."},"ParameterAdaptationStrategy":{"type":"string","enum":["GENERATION_BASED","FUNCTION_EVALUATION_BASED","OTHER"],"title":"ParameterAdaptationStrategy","description":"The parameter adaptation strategies for the RVEA selector."},"PowerMutationOptions":{"properties":{"name":{"type":"string","const":"PowerMutation","title":"Name","description":"The name of the mutation operator.","default":"PowerMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to 1/."},"p":{"type":"number","minimum":0.0,"title":"P","description":"Power distribution parameter. Controls the perturbation magnitude.","default":1.5}},"type":"object","title":"PowerMutationOptions","description":"Options for Power Mutation."},"PreferredSolutionsOptions":{"properties":{"name":{"type":"string","const":"preferred_solutions","title":"Name","description":"The name of the preferred solutions option.","default":"preferred_solutions"},"preference":{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object","title":"Preference","description":"The preferred solutions as a dictionary with objective function symbols as the keys."},"method":{"type":"string","const":"Hakanen","title":"Method","description":"The method for handling the preferred solutions.","default":"Hakanen"}},"type":"object","required":["preference"],"title":"PreferredSolutionsOptions","description":"Options for providing preferred solutions for an EA."},"ProblemGetRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"}},"type":"object","required":["problem_id"],"title":"ProblemGetRequest","description":"Model to deal with problem fetching requests."},"ProblemInfo":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"is_convex":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Convex"},"is_linear":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Linear"},"is_twice_differentiable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Twice Differentiable"},"scenario_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scenario Keys"},"variable_domain":{"$ref":"#/components/schemas/VariableDomainTypeEnum"},"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"constants":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConstantDB"},"type":"array"},{"type":"null"}],"title":"Constants"},"tensor_constants":{"anyOf":[{"items":{"$ref":"#/components/schemas/TensorConstantDB"},"type":"array"},{"type":"null"}],"title":"Tensor Constants"},"variables":{"anyOf":[{"items":{"$ref":"#/components/schemas/VariableDB"},"type":"array"},{"type":"null"}],"title":"Variables"},"tensor_variables":{"anyOf":[{"items":{"$ref":"#/components/schemas/TensorVariableDB"},"type":"array"},{"type":"null"}],"title":"Tensor Variables"},"objectives":{"items":{"$ref":"#/components/schemas/ObjectiveDB"},"type":"array","title":"Objectives"},"constraints":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConstraintDB"},"type":"array"},{"type":"null"}],"title":"Constraints"},"scalarization_funcs":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScalarizationFunctionDB"},"type":"array"},{"type":"null"}],"title":"Scalarization Funcs"},"extra_funcs":{"anyOf":[{"items":{"$ref":"#/components/schemas/ExtraFunctionDB"},"type":"array"},{"type":"null"}],"title":"Extra Funcs"},"discrete_representation":{"anyOf":[{"$ref":"#/components/schemas/DiscreteRepresentationDB"},{"type":"null"}]},"simulators":{"anyOf":[{"items":{"$ref":"#/components/schemas/SimulatorDB"},"type":"array"},{"type":"null"}],"title":"Simulators"},"problem_metadata":{"anyOf":[{"$ref":"#/components/schemas/ProblemMetaDataPublic"},{"type":"null"}]}},"type":"object","required":["name","description","is_convex","is_linear","is_twice_differentiable","scenario_keys","variable_domain","id","user_id","constants","tensor_constants","variables","tensor_variables","objectives","constraints","scalarization_funcs","extra_funcs","discrete_representation","simulators","problem_metadata"],"title":"ProblemInfo","description":"Problem info request return data."},"ProblemInfoSmall":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"is_convex":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Convex"},"is_linear":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Linear"},"is_twice_differentiable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Twice Differentiable"},"scenario_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scenario Keys"},"variable_domain":{"$ref":"#/components/schemas/VariableDomainTypeEnum"},"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"problem_metadata":{"anyOf":[{"$ref":"#/components/schemas/ProblemMetaDataPublic"},{"type":"null"}]}},"type":"object","required":["name","description","is_convex","is_linear","is_twice_differentiable","scenario_keys","variable_domain","id","user_id","problem_metadata"],"title":"ProblemInfoSmall","description":"Problem info request return data, but smaller."},"ProblemMetaDataGetRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"metadata_type":{"type":"string","title":"Metadata Type"}},"type":"object","required":["problem_id","metadata_type"],"title":"ProblemMetaDataGetRequest","description":"Request model for getting specific type of metadata from a specific problem."},"ProblemMetaDataPublic":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"forest_metadata":{"anyOf":[{"items":{"$ref":"#/components/schemas/ForestProblemMetaData"},"type":"array"},{"type":"null"}],"title":"Forest Metadata"},"representative_nd_metadata":{"anyOf":[{"items":{"$ref":"#/components/schemas/RepresentativeNonDominatedSolutions"},"type":"array"},{"type":"null"}],"title":"Representative Nd Metadata"}},"type":"object","required":["problem_id","forest_metadata","representative_nd_metadata"],"title":"ProblemMetaDataPublic","description":"Response model for ProblemMetaData."},"ProblemSelectSolverRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"solver_string_representation":{"type":"string","title":"Solver String Representation"}},"type":"object","required":["problem_id","solver_string_representation"],"title":"ProblemSelectSolverRequest","description":"Model to request a specific solver for a problem."},"RPMSolveRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent State Id"},"scalarization_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Scalarization Options"},"solver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solver"},"solver_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Solver Options"},"preference":{"$ref":"#/components/schemas/ReferencePoint"}},"type":"object","required":["problem_id"],"title":"RPMSolveRequest","description":"Model of the request to the reference point method."},"RPMState":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"preferences":{"$ref":"#/components/schemas/ReferencePoint"},"scalarization_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Scalarization Options"},"solver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Solver"},"solver_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Solver Options"},"solver_results":{"items":{"$ref":"#/components/schemas/SolverResults"},"type":"array","title":"Solver Results"}},"type":"object","required":["preferences","solver_results"],"title":"RPMState","description":"Reference Point Method (k+1 candidates)."},"RVEASelectorOptions":{"properties":{"name":{"type":"string","const":"RVEASelector","title":"Name","description":"The name of the selection operator.","default":"RVEASelector"},"reference_vector_options":{"$ref":"#/components/schemas/ReferenceVectorOptions","description":"Options for the reference vectors.","default":{"adaptation_frequency":0,"creation_type":"simplex","vector_type":"spherical","number_of_vectors":200,"adaptation_distance":0.2}},"parameter_adaptation_strategy":{"$ref":"#/components/schemas/ParameterAdaptationStrategy","description":"The parameter adaptation strategy to use.","default":"GENERATION_BASED"},"alpha":{"type":"number","exclusiveMinimum":0.0,"title":"Alpha","description":"The alpha parameter in the angle penalized distance.","default":2.0}},"type":"object","title":"RVEASelectorOptions","description":"Options for RVEA Selection."},"RandomBinaryGeneratorOptions":{"properties":{"n_points":{"type":"integer","exclusiveMinimum":0.0,"title":"N Points","description":"The number of points to generate for the initial population."},"name":{"type":"string","const":"RandomBinaryGenerator","title":"Name","description":"The name of the generator.","default":"RandomBinaryGenerator"}},"type":"object","required":["n_points"],"title":"RandomBinaryGeneratorOptions","description":"Options for Random Binary generator."},"RandomGeneratorOptions":{"properties":{"n_points":{"type":"integer","exclusiveMinimum":0.0,"title":"N Points","description":"The number of points to generate for the initial population."},"name":{"type":"string","const":"RandomGenerator","title":"Name","description":"The name of the generator.","default":"RandomGenerator"}},"type":"object","required":["n_points"],"title":"RandomGeneratorOptions","description":"Options for Random generator."},"RandomIntegerGeneratorOptions":{"properties":{"n_points":{"type":"integer","exclusiveMinimum":0.0,"title":"N Points","description":"The number of points to generate for the initial population."},"name":{"type":"string","const":"RandomIntegerGenerator","title":"Name","description":"The name of the generator.","default":"RandomIntegerGenerator"}},"type":"object","required":["n_points"],"title":"RandomIntegerGeneratorOptions","description":"Options for Random Integer generator."},"RandomMixedIntegerGeneratorOptions":{"properties":{"n_points":{"type":"integer","exclusiveMinimum":0.0,"title":"N Points","description":"The number of points to generate for the initial population."},"name":{"type":"string","const":"RandomMixedIntegerGenerator","title":"Name","description":"The name of the generator.","default":"RandomMixedIntegerGenerator"}},"type":"object","required":["n_points"],"title":"RandomMixedIntegerGeneratorOptions","description":"Options for Random Mixed Integer generator."},"ReferencePoint":{"properties":{"preference_type":{"type":"string","const":"reference_point","title":"Preference Type","default":"reference_point"},"aspiration_levels":{"additionalProperties":{"type":"number"},"type":"object","title":"Aspiration Levels"}},"type":"object","required":["aspiration_levels"],"title":"ReferencePoint","description":"Model for representing a reference point type of preference."},"ReferencePointOptions":{"properties":{"name":{"type":"string","const":"reference_point","title":"Name","description":"The name of the reference point option.","default":"reference_point"},"preference":{"additionalProperties":{"type":"number"},"type":"object","title":"Preference","description":"The reference point as a dictionary with objective function symbols as the keys."},"method":{"type":"string","enum":["Hakanen","IOPIS"],"title":"Method","description":"The method for handling the reference point.","default":"Hakanen"}},"type":"object","required":["preference"],"title":"ReferencePointOptions","description":"Options for providing a reference point for an EA."},"ReferenceVectorOptions":{"properties":{"adaptation_frequency":{"type":"integer","title":"Adaptation Frequency","description":"Number of generations between reference vector adaptation. If set to 0, no adaptation occurs. Defaults to 0.\nOnly used if no preference is provided.","default":0},"creation_type":{"type":"string","enum":["simplex","s_energy"],"title":"Creation Type","description":"The method for creating reference vectors. Defaults to \"simplex\".\nCurrently only \"simplex\" is implemented. Future versions will include \"s_energy\".\n\nIf set to \"simplex\", the reference vectors are created using the simplex lattice design method.\nThis method is generates distributions with specific numbers of reference vectors.\nCheck: https://www.itl.nist.gov/div898/handbook/pri/section5/pri542.htm for more information.\nIf set to \"s_energy\", the reference vectors are created using the Riesz s-energy criterion. This method is used to\ndistribute an arbitrary number of reference vectors in the objective space while minimizing the s-energy.\nCurrently not implemented.","default":"simplex"},"vector_type":{"type":"string","enum":["spherical","planar"],"title":"Vector Type","description":"The method for normalizing the reference vectors. Defaults to \"spherical\".","default":"spherical"},"lattice_resolution":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lattice Resolution","description":"Number of divisions along an axis when creating the simplex lattice. This is not required/used for the \"s_energy\"\nmethod. If not specified, the lattice resolution is calculated based on the `number_of_vectors`. If \"spherical\" is \nselected as the `vector_type`, this value overrides the `number_of_vectors`."},"number_of_vectors":{"type":"integer","title":"Number Of Vectors","description":"Number of reference vectors to be created. If \"simplex\" is selected as the `creation_type`, then the closest\n`lattice_resolution` is calculated based on this value. If \"s_energy\" is selected, then this value is used directly.\nNote that if neither `lattice_resolution` nor `number_of_vectors` is specified, the number of vectors defaults to\n200. Overridden if \"spherical\" is selected as the `vector_type` and `lattice_resolution` is provided.","default":200},"adaptation_distance":{"type":"number","title":"Adaptation Distance","description":"Distance parameter for the interactive adaptation methods. Defaults to 0.2.","default":0.2},"reference_point":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Reference Point","description":"The reference point for interactive adaptation."},"preferred_solutions":{"anyOf":[{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Preferred Solutions","description":"The preferred solutions for interactive adaptation."},"non_preferred_solutions":{"anyOf":[{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Non Preferred Solutions","description":"The non-preferred solutions for interactive adaptation."},"preferred_ranges":{"anyOf":[{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Preferred Ranges","description":"The preferred ranges for interactive adaptation."}},"type":"object","title":"ReferenceVectorOptions","description":"Pydantic model for Reference Vector arguments."},"RepresentativeNonDominatedSolutions":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"metadata_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Metadata Id"},"metadata_type":{"type":"string","title":"Metadata Type","default":"representative_non_dominated_solutions"},"name":{"type":"string","title":"Name","description":"The name of the representative set."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"A description of the representative set. Optional."},"solution_data":{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object","title":"Solution Data","description":"The non-dominated solutions. It is assumed that columns exist for each variable and objective function. For functions, the `_min` variant should be present, and any tensor variables should be unrolled."},"ideal":{"additionalProperties":{"type":"number"},"type":"object","title":"Ideal","description":"The ideal objective function values of the representative set."},"nadir":{"additionalProperties":{"type":"number"},"type":"object","title":"Nadir","description":"The nadir objective function values of the representative set."}},"type":"object","required":["name","solution_data","ideal","nadir"],"title":"RepresentativeNonDominatedSolutions","description":"A problem metadata class to store representative solutions sets, i.e., non-dominated sets...\n\nA problem metadata class to store representative solutions sets, i.e., non-dominated sets that\nrepresent/approximate the Pareto optimal solution set of the problem.\n\nNote:\n It is assumed that the solution set is non-dominated."},"RouletteWheelSelectionOptions":{"properties":{"name":{"type":"string","const":"RouletteWheelSelection","title":"Name","description":"The name of the scalar selection operator.","default":"RouletteWheelSelection"},"tournament_size":{"type":"integer","title":"Tournament Size","description":"The number of individuals participating in the tournament.","default":2},"winner_size":{"type":"integer","exclusiveMinimum":1.0,"title":"Winner Size","description":"The number of winners to select (equivalent to population size)."}},"type":"object","required":["winner_size"],"title":"RouletteWheelSelectionOptions","description":"Options for roulette wheel selection operator."},"SCOREBandsConfig":{"properties":{"dimensions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Dimensions","description":"List of variable/objective names (i.e., column names in the data) to include in the visualization.\nIf None, all columns in the data are used. Defaults to None."},"axis_positions":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Axis Positions","description":"Dictionary mapping objective names to their positions on the axes in the SCORE bands visualization. The first\nobjective is at position 0.0, and the last objective is at position 1.0. Use this option if you want to\nmanually set the axis positions. If None, the axis positions are calculated automatically based on correlations.\nDefaults to None."},"clustering_algorithm":{"anyOf":[{"$ref":"#/components/schemas/GMMOptions"},{"$ref":"#/components/schemas/DBSCANOptions"},{"$ref":"#/components/schemas/KMeansOptions"},{"$ref":"#/components/schemas/DimensionClusterOptions"},{"$ref":"#/components/schemas/CustomClusterOptions"}],"title":"Clustering Algorithm","description":"Clustering algorithm to use. Currently supported options: \"GMM\", \"DBSCAN\",\n and \"KMeans\". Defaults to \"DBSCAN\".","default":{"name":"DBSCAN"}},"distance_formula":{"$ref":"#/components/schemas/DistanceFormula","description":"Distance formula to use. The value should be 1 or 2. Check the paper for details. Defaults to 1.","default":1},"distance_parameter":{"type":"number","title":"Distance Parameter","description":"Change the relative distances between the objective axes. Increase this value if objectives are placed too close\ntogether. Decrease this value if the objectives are equidistant in a problem with objective clusters. Defaults\nto 0.05.","default":0.05},"use_absolute_correlations":{"type":"boolean","title":"Use Absolute Correlations","description":"Whether to use absolute value of the correlation to calculate the placement of axes. Defaults to False.","default":false},"include_solutions":{"type":"boolean","title":"Include Solutions","description":"Whether to include individual solutions. Defaults to False. If True, the size of the resulting figure may be\nvery large for datasets with many solutions. Moreover, the individual traces are hidden by default, but can be\nviewed interactively in the figure.","default":false},"include_medians":{"type":"boolean","title":"Include Medians","description":"Whether to include cluster medians. Defaults to False. If True, the median traces are hidden by default, but\ncan be viewed interactively in the figure.","default":false},"interval_size":{"type":"number","title":"Interval Size","description":"The size (as a fraction) of the interval to use for the bands. Defaults to 0.95, meaning that 95% of the\nmiddle solutions in a cluster will be included in the band. The rest will be considered outliers.","default":0.95},"scales":{"anyOf":[{"additionalProperties":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"object"},{"type":"null"}],"title":"Scales","description":"Optional dictionary specifying the min and max values for each objective. The keys should be the\nobjective names (i.e., column names in the data), and the values should be tuples of (min, max).\nIf not provided, the min and max will be calculated from the data."}},"type":"object","title":"SCOREBandsConfig","description":"Configuration options for SCORE bands visualization."},"SCOREBandsResult":{"properties":{"options":{"$ref":"#/components/schemas/SCOREBandsConfig","description":"Configuration options used to generate the SCORE bands."},"ordered_dimensions":{"items":{"type":"string"},"type":"array","title":"Ordered Dimensions","description":"List of variable/objective names (i.e., column names in the data).\nOrdered according to their placement in the SCORE bands visualization."},"clusters":{"items":{"type":"integer"},"type":"array","title":"Clusters","description":"List of cluster IDs (one for each solution) indicating the cluster to which each solution belongs."},"axis_positions":{"additionalProperties":{"type":"number"},"type":"object","title":"Axis Positions","description":"Dictionary mapping objective names to their positions on the axes in the SCORE bands visualization. The first\nobjective is at position 0.0, and the last objective is at position 1.0."},"bands":{"additionalProperties":{"additionalProperties":{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},"type":"object"},"type":"object","title":"Bands","description":"Dictionary mapping cluster IDs to dictionaries of objective names and their corresponding band\nextremes (min, max)."},"medians":{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object","title":"Medians","description":"Dictionary mapping cluster IDs to dictionaries of objective names and their corresponding median values."},"cardinalities":{"additionalProperties":{"type":"integer"},"type":"object","title":"Cardinalities","description":"Dictionary mapping cluster IDs to the number of solutions in each cluster."}},"type":"object","required":["options","ordered_dimensions","clusters","axis_positions","bands","medians","cardinalities"],"title":"SCOREBandsResult","description":"Pydantic/JSON model for representing SCORE Bands."},"ScalarizationFunctionDB":{"properties":{"func":{"items":{},"type":"array","title":"Func"},"scenario_keys":{"items":{"type":"string"},"type":"array","title":"Scenario Keys"},"name":{"type":"string","title":"Name","description":"Name of the scalarization function."},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol","description":"Optional symbol to represent the scalarization function. This may be used in UIs and visualizations."},"is_linear":{"type":"boolean","title":"Is Linear","description":"Whether the function expression is linear or not. Defaults to `False`.","default":false},"is_convex":{"type":"boolean","title":"Is Convex","description":"Whether the function expression is convex or not (non-convex). Defaults to `False`.","default":false},"is_twice_differentiable":{"type":"boolean","title":"Is Twice Differentiable","description":"Whether the function expression is twice differentiable or not. Defaults to `False`","default":false},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["func","scenario_keys","name"],"title":"ScalarizationFunctionDB","description":"The SQLModel equivalent to `ScalarizationFunction`."},"ScoreBandsRequest":{"properties":{"data":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Data","description":"Matrix of objective values"},"objs":{"items":{"type":"string"},"type":"array","title":"Objs","description":"Array of objective names for each column"},"dist_parameter":{"type":"number","title":"Dist Parameter","description":"Distance parameter for axis positioning","default":0.05},"use_absolute_corr":{"type":"boolean","title":"Use Absolute Corr","description":"Use absolute correlation values","default":false},"distance_formula":{"type":"integer","title":"Distance Formula","description":"Distance formula (1 or 2)","default":1},"flip_axes":{"type":"boolean","title":"Flip Axes","description":"Whether to flip axes based on correlation signs","default":true},"clustering_algorithm":{"type":"string","title":"Clustering Algorithm","description":"Clustering algorithm (DBSCAN or GMM)","default":"DBSCAN"},"clustering_score":{"type":"string","title":"Clustering Score","description":"Clustering score metric","default":"silhoutte"}},"type":"object","required":["data","objs"],"title":"ScoreBandsRequest","description":"Model of the request to calculate SCORE bands parameters."},"ScoreBandsResponse":{"properties":{"groups":{"items":{"type":"integer"},"type":"array","title":"Groups","description":"Cluster group assignments for each data point"},"axis_dist":{"items":{"type":"number"},"type":"array","title":"Axis Dist","description":"Normalized axis positions"},"axis_signs":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Axis Signs","description":"Axis direction signs (1 or -1)"},"obj_order":{"items":{"type":"integer"},"type":"array","title":"Obj Order","description":"Optimal order of objectives"}},"type":"object","required":["groups","axis_dist","axis_signs","obj_order"],"title":"ScoreBandsResponse","description":"Model of the response containing SCORE bands parameters."},"SelfAdaptiveGaussianMutationOptions":{"properties":{"name":{"type":"string","const":"SelfAdaptiveGaussianMutation","title":"Name","description":"The name of the mutation operator.","default":"SelfAdaptiveGaussianMutation"},"mutation_probability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Mutation Probability","description":"The probability of mutation. Defaults to None, which sets the mutation probability to 1/."}},"type":"object","title":"SelfAdaptiveGaussianMutationOptions","description":"Options for Self-Adaptive Gaussian Mutation."},"SimulatedBinaryCrossoverOptions":{"properties":{"name":{"type":"string","const":"SimulatedBinaryCrossover","title":"Name","description":"The name of the crossover operator.","default":"SimulatedBinaryCrossover"},"xover_probability":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Xover Probability","description":"The SBX crossover probability.","default":0.5},"xover_distribution":{"type":"number","exclusiveMinimum":0.0,"title":"Xover Distribution","description":"The SBX distribution index.","default":30.0}},"type":"object","title":"SimulatedBinaryCrossoverOptions","description":"Options for Simulated Binary Crossover (SBX)."},"SimulatorDB":{"properties":{"file":{"anyOf":[{"type":"string","format":"path"},{"type":"null"}],"title":"File"},"url":{"anyOf":[{"$ref":"#/components/schemas/Url"},{"type":"null"}]},"parameter_options":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Parameter Options"},"name":{"type":"string","title":"Name","description":"Descriptive name of the simulator. This can be used in UI and visualizations."},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the simulator. This will be used in the rest of the problem definition. It may also be used in UIs and visualizations."},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["name","symbol"],"title":"SimulatorDB","description":"The SQLModel equivalent to `Simulator`."},"SingleArithmeticCrossoverOptions":{"properties":{"name":{"type":"string","const":"SingleArithmeticCrossover","title":"Name","description":"The name of the crossover operator.","default":"SingleArithmeticCrossover"},"xover_probability":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Xover Probability","description":"The crossover probability.","default":1.0}},"type":"object","title":"SingleArithmeticCrossoverOptions","description":"Options for Single Arithmetic Crossover."},"SinglePointBinaryCrossoverOptions":{"properties":{"name":{"type":"string","const":"SinglePointBinaryCrossover","title":"Name","description":"The name of the crossover operator.","default":"SinglePointBinaryCrossover"}},"type":"object","title":"SinglePointBinaryCrossoverOptions","description":"Options for Single Point Binary Crossover."},"SolutionInfo":{"properties":{"state_id":{"type":"integer","title":"State Id"},"solution_index":{"type":"integer","title":"Solution Index"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name to be given to the solution. Optional."}},"type":"object","required":["state_id","solution_index"],"title":"SolutionInfo","description":"Used when we wish to reference a solution in some `StateDB` stored in the database."},"SolutionReference":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional name to help identify the solution if, e.g., saved."},"solution_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Solution Index","description":"The index of the referenced solution, if multiple solutions exist in the reference state."},"state":{"$ref":"#/components/schemas/StateDB","description":"The reference state with the solution information."},"objective_values_all":{"items":{"additionalProperties":{"type":"number"},"type":"object"},"type":"array","title":"Objective Values All","readOnly":true},"variable_values_all":{"items":{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"boolean"},{"$ref":"#/components/schemas/Tensor"}]},"type":"object"},"type":"array","title":"Variable Values All","readOnly":true},"objective_values":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Objective Values","readOnly":true},"variable_values":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Variable Values","readOnly":true},"state_id":{"type":"integer","title":"State Id","readOnly":true},"num_solutions":{"type":"integer","title":"Num Solutions","readOnly":true}},"type":"object","required":["state","objective_values_all","variable_values_all","objective_values","variable_values","state_id","num_solutions"],"title":"SolutionReference","description":"A model that functions as a reference to solutions existing in the database.\n\nReferenced solutions are not necessarily solutions that the user has saved explicitly. For\nreferencing those, see `SavedSolutionReference`."},"SolutionReferenceResponse":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"solution_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Solution Index"},"state_id":{"type":"integer","title":"State Id"},"objective_values":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Objective Values"},"variable_values":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"boolean"},{"$ref":"#/components/schemas/Tensor"}]},"type":"object"},{"type":"null"}],"title":"Variable Values"}},"type":"object","required":["name","solution_index","state_id","objective_values","variable_values"],"title":"SolutionReferenceResponse","description":"The response information provided when `SolutionReference` object are returned from the client."},"SolverResults":{"properties":{"optimal_variables":{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"number"},{"items":{},"type":"array"}]},"type":"object","title":"Optimal Variables","description":"The optimal decision variables found."},"optimal_objectives":{"additionalProperties":{"anyOf":[{"type":"number"},{"items":{"type":"number"},"type":"array"}]},"type":"object","title":"Optimal Objectives","description":"The objective function values corresponding to the optimal decision variables found."},"constraint_values":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"type":"integer"},{"items":{"type":"number"},"type":"array"},{"items":{},"type":"array"}]},"type":"object"},{},{"type":"null"}],"title":"Constraint Values","description":"The constraint values of the problem. A negative value means the constraint is respected, a positive one means it has been breached."},"extra_func_values":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"items":{"type":"number"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Extra Func Values","description":"The extra function values of the problem."},"scalarization_values":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"number"},{"items":{"type":"number"},"type":"array"}]},"type":"object"},{"type":"null"}],"title":"Scalarization Values","description":"The scalarization function values of the problem."},"success":{"type":"boolean","title":"Success","description":"A boolean flag indicating whether the optimization was successful or not."},"message":{"type":"string","title":"Message","description":"Description of the cause of termination."}},"type":"object","required":["optimal_variables","optimal_objectives","success","message"],"title":"SolverResults","description":"Defines a schema for a dataclass to store the results of a solver."},"SolverSelectionMetadata":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"metadata_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Metadata Id"},"metadata_type":{"type":"string","title":"Metadata Type","default":"solver_selection_metadata"},"solver_string_representation":{"type":"string","title":"Solver String Representation","description":"The string representation of the selected solver."}},"type":"object","required":["solver_string_representation"],"title":"SolverSelectionMetadata","description":"A problem metadata class to store the preferred solver of a problem.\n\nA problem metadata class to store the preferred solver of a problem.\nSee desdeo/tools/utils.py -> available_solvers for available solvers."},"StateDB":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"},"session_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Session Id"},"parent_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Id"},"state_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"State Id"}},"type":"object","title":"StateDB","description":"State holder with a single relationship to the base State."},"Template1Options":{"properties":{"crossover":{"anyOf":[{"$ref":"#/components/schemas/SimulatedBinaryCrossoverOptions"},{"$ref":"#/components/schemas/SinglePointBinaryCrossoverOptions"},{"$ref":"#/components/schemas/UniformIntegerCrossoverOptions"},{"$ref":"#/components/schemas/UniformMixedIntegerCrossoverOptions"},{"$ref":"#/components/schemas/BlendAlphaCrossoverOptions"},{"$ref":"#/components/schemas/SingleArithmeticCrossoverOptions"},{"$ref":"#/components/schemas/LocalCrossoverOptions"},{"$ref":"#/components/schemas/BoundedExponentialCrossoverOptions"}],"title":"Crossover","description":"The crossover operator options."},"mutation":{"anyOf":[{"$ref":"#/components/schemas/BoundedPolynomialMutationOptions"},{"$ref":"#/components/schemas/BinaryFlipMutationOptions"},{"$ref":"#/components/schemas/IntegerRandomMutationOptions"},{"$ref":"#/components/schemas/MixedIntegerRandomMutationOptions"},{"$ref":"#/components/schemas/MPTMutationOptions"},{"$ref":"#/components/schemas/NonUniformMutationOptions"},{"$ref":"#/components/schemas/SelfAdaptiveGaussianMutationOptions"},{"$ref":"#/components/schemas/PowerMutationOptions"}],"title":"Mutation","description":"The mutation operator options."},"selection":{"anyOf":[{"$ref":"#/components/schemas/RVEASelectorOptions"},{"$ref":"#/components/schemas/NSGA3SelectorOptions"},{"$ref":"#/components/schemas/IBEASelectorOptions"}],"title":"Selection","description":"The selection operator options."},"termination":{"anyOf":[{"$ref":"#/components/schemas/MaxGenerationsTerminatorOptions"},{"$ref":"#/components/schemas/MaxEvaluationsTerminatorOptions"},{"$ref":"#/components/schemas/MaxTimeTerminatorOptions"},{"$ref":"#/components/schemas/ExternalCheckTerminatorOptions"},{"$ref":"#/components/schemas/CompositeTerminatorOptions"}],"title":"Termination","description":"The termination operator options."},"generator":{"anyOf":[{"$ref":"#/components/schemas/LHSGeneratorOptions"},{"$ref":"#/components/schemas/RandomBinaryGeneratorOptions"},{"$ref":"#/components/schemas/RandomGeneratorOptions"},{"$ref":"#/components/schemas/RandomIntegerGeneratorOptions"},{"$ref":"#/components/schemas/RandomMixedIntegerGeneratorOptions"}],"title":"Generator","description":"The population generator options."},"repair":{"anyOf":[{"$ref":"#/components/schemas/ClipRepairOptions"},{"$ref":"#/components/schemas/NoRepairOptions"}],"title":"Repair","description":"The repair operator options.","default":{"name":"NoRepair"}},"use_archive":{"type":"boolean","title":"Use Archive","description":"Whether to use an archive.","default":true},"seed":{"type":"integer","title":"Seed","description":"The seed for random number generation.","default":0},"verbosity":{"type":"integer","title":"Verbosity","description":"The verbosity level of the operators.","default":2},"algorithm_name":{"type":"string","title":"Algorithm Name","description":"The unique name of the algorithm."},"name":{"type":"string","const":"Template1","title":"Name","description":"The name of the template.","default":"Template1"}},"type":"object","required":["crossover","mutation","selection","termination","generator","algorithm_name"],"title":"Template1Options","description":"Options for template 1.\n\nTemplate 1 is used by methods such as NSGA-III and RVEA. See\n[template1][desdeo.emo.methods.templates.template1] for\nmore details."},"Template2Options":{"properties":{"crossover":{"anyOf":[{"$ref":"#/components/schemas/SimulatedBinaryCrossoverOptions"},{"$ref":"#/components/schemas/SinglePointBinaryCrossoverOptions"},{"$ref":"#/components/schemas/UniformIntegerCrossoverOptions"},{"$ref":"#/components/schemas/UniformMixedIntegerCrossoverOptions"},{"$ref":"#/components/schemas/BlendAlphaCrossoverOptions"},{"$ref":"#/components/schemas/SingleArithmeticCrossoverOptions"},{"$ref":"#/components/schemas/LocalCrossoverOptions"},{"$ref":"#/components/schemas/BoundedExponentialCrossoverOptions"}],"title":"Crossover","description":"The crossover operator options."},"mutation":{"anyOf":[{"$ref":"#/components/schemas/BoundedPolynomialMutationOptions"},{"$ref":"#/components/schemas/BinaryFlipMutationOptions"},{"$ref":"#/components/schemas/IntegerRandomMutationOptions"},{"$ref":"#/components/schemas/MixedIntegerRandomMutationOptions"},{"$ref":"#/components/schemas/MPTMutationOptions"},{"$ref":"#/components/schemas/NonUniformMutationOptions"},{"$ref":"#/components/schemas/SelfAdaptiveGaussianMutationOptions"},{"$ref":"#/components/schemas/PowerMutationOptions"}],"title":"Mutation","description":"The mutation operator options."},"selection":{"anyOf":[{"$ref":"#/components/schemas/RVEASelectorOptions"},{"$ref":"#/components/schemas/NSGA3SelectorOptions"},{"$ref":"#/components/schemas/IBEASelectorOptions"}],"title":"Selection","description":"The selection operator options."},"termination":{"anyOf":[{"$ref":"#/components/schemas/MaxGenerationsTerminatorOptions"},{"$ref":"#/components/schemas/MaxEvaluationsTerminatorOptions"},{"$ref":"#/components/schemas/MaxTimeTerminatorOptions"},{"$ref":"#/components/schemas/ExternalCheckTerminatorOptions"},{"$ref":"#/components/schemas/CompositeTerminatorOptions"}],"title":"Termination","description":"The termination operator options."},"generator":{"anyOf":[{"$ref":"#/components/schemas/LHSGeneratorOptions"},{"$ref":"#/components/schemas/RandomBinaryGeneratorOptions"},{"$ref":"#/components/schemas/RandomGeneratorOptions"},{"$ref":"#/components/schemas/RandomIntegerGeneratorOptions"},{"$ref":"#/components/schemas/RandomMixedIntegerGeneratorOptions"}],"title":"Generator","description":"The population generator options."},"repair":{"anyOf":[{"$ref":"#/components/schemas/ClipRepairOptions"},{"$ref":"#/components/schemas/NoRepairOptions"}],"title":"Repair","description":"The repair operator options.","default":{"name":"NoRepair"}},"use_archive":{"type":"boolean","title":"Use Archive","description":"Whether to use an archive.","default":true},"seed":{"type":"integer","title":"Seed","description":"The seed for random number generation.","default":0},"verbosity":{"type":"integer","title":"Verbosity","description":"The verbosity level of the operators.","default":2},"algorithm_name":{"type":"string","title":"Algorithm Name","description":"The unique name of the algorithm."},"name":{"type":"string","const":"Template2","title":"Name","description":"The name of the template.","default":"Template2"},"mate_selection":{"anyOf":[{"$ref":"#/components/schemas/TournamentSelectionOptions"},{"$ref":"#/components/schemas/RouletteWheelSelectionOptions"}],"title":"Mate Selection","description":"The mate selection operator options."}},"type":"object","required":["crossover","mutation","selection","termination","generator","algorithm_name","mate_selection"],"title":"Template2Options","description":"Options for template 2.\n\nTemplate 2 is used by methods such as IBEA. See\n[template2][desdeo.emo.methods.templates.template2] for\nmore details."},"Tensor":{"anyOf":[{"items":{"$ref":"#/components/schemas/Tensor"},"type":"array"},{"items":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"boolean"}]},"type":"array"},{"type":"number"},{"type":"integer"},{"type":"boolean"},{"type":"string","const":"List"},{"type":"null"}]},"TensorConstantDB":{"properties":{"values":{"$ref":"#/components/schemas/Tensor"},"shape":{"items":{"type":"integer"},"type":"array","title":"Shape"},"name":{"type":"string","title":"Name","description":"Descriptive name of the tensor representing the values. E.g., 'distances'"},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the constant. This will be used in the rest of the problem definition. Notice that the elements of the tensor will be represented with the symbol followed by indices. E.g., the first element of the third element of a 2-dimensional tensor, is represented by 'x_1_3', where 'x' is the symbol given to the TensorVariable. Note that indexing starts from 1."},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["values","shape","name","symbol"],"title":"TensorConstantDB","description":"The SQLModel equivalent to `TensorConstant`."},"TensorVariableDB":{"properties":{"initial_values":{"anyOf":[{"$ref":"#/components/schemas/Tensor"},{"type":"null"}]},"lowerbounds":{"anyOf":[{"$ref":"#/components/schemas/Tensor"},{"type":"null"}]},"upperbounds":{"anyOf":[{"$ref":"#/components/schemas/Tensor"},{"type":"null"}]},"shape":{"items":{"type":"integer"},"type":"array","title":"Shape"},"name":{"type":"string","title":"Name","description":"Descriptive name of the variable. This can be used in UI and visualizations. Example: 'velocity'."},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the variable. This will be used in the rest of the problem definition. Notice that the elements of the tensor will be represented with the symbol followed by indices. E.g., the first element of the third element of a 2-dimensional tensor, is represented by 'x_1_3', where 'x' is the symbol given to the TensorVariable. Note that indexing starts from 1."},"variable_type":{"$ref":"#/components/schemas/VariableTypeEnum","description":"Type of the variable. Can be real, integer, or binary. Note that each element of a TensorVariable is assumed to be of the same type."},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["initial_values","lowerbounds","upperbounds","shape","name","symbol","variable_type"],"title":"TensorVariableDB","description":"The SQLModel equivalent to `TensorVariable`."},"Tokens":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"token_type":{"type":"string","title":"Token Type"}},"type":"object","required":["access_token","refresh_token","token_type"],"title":"Tokens","description":"A model for the authentication token."},"TournamentSelectionOptions":{"properties":{"name":{"type":"string","const":"TournamentSelection","title":"Name","description":"The name of the scalar selection operator.","default":"TournamentSelection"},"tournament_size":{"type":"integer","title":"Tournament Size","description":"The number of individuals participating in the tournament.","default":2},"winner_size":{"type":"integer","exclusiveMinimum":1.0,"title":"Winner Size","description":"The number of winners to select (equivalent to population size)."}},"type":"object","required":["winner_size"],"title":"TournamentSelectionOptions","description":"Options for tournament selection operator."},"UniformIntegerCrossoverOptions":{"properties":{"name":{"type":"string","const":"UniformIntegerCrossover","title":"Name","description":"The name of the crossover operator.","default":"UniformIntegerCrossover"}},"type":"object","title":"UniformIntegerCrossoverOptions","description":"Options for Uniform Integer Crossover."},"UniformMixedIntegerCrossoverOptions":{"properties":{"name":{"type":"string","const":"UniformMixedIntegerCrossover","title":"Name","description":"The name of the crossover operator.","default":"UniformMixedIntegerCrossover"}},"type":"object","title":"UniformMixedIntegerCrossoverOptions","description":"Options for Uniform Mixed Integer Crossover."},"Url":{"properties":{"url":{"type":"string","title":"Url","description":"A URL to the simulator. A GET request to this URL should be used to evaluate solutions in batches."},"auth":{"anyOf":[{"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Auth","description":"Optional. A tuple of username and password to be used for authentication when making requests to the URL."}},"additionalProperties":false,"type":"object","required":["url"],"title":"Url","description":"Model for a URL."},"UserPublic":{"properties":{"username":{"type":"string","title":"Username"},"id":{"type":"integer","title":"Id"},"role":{"$ref":"#/components/schemas/UserRole"},"group_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Group Ids"}},"type":"object","required":["username","id","role","group_ids"],"title":"UserPublic","description":"The object to handle public user information."},"UserRole":{"type":"string","enum":["guest","dm","analyst","admin"],"title":"UserRole","description":"Possible user roles."},"UtopiaRequest":{"properties":{"problem_id":{"type":"integer","title":"Problem Id","description":"Problem for which the map is generated"},"solution":{"$ref":"#/components/schemas/SolutionInfo","description":"Solution for which to generate the map"}},"type":"object","required":["problem_id","solution"],"title":"UtopiaRequest","description":"The request for an Utopia map."},"UtopiaResponse":{"properties":{"is_utopia":{"type":"boolean","title":"Is Utopia","description":"True if map exists for this problem."},"map_name":{"type":"string","title":"Map Name","description":"Name of the map."},"map_json":{"additionalProperties":true,"type":"object","title":"Map Json","description":"MapJSON representation of the geography."},"options":{"additionalProperties":true,"type":"object","title":"Options","description":"A dict with given years as keys containing options for each year."},"description":{"type":"string","title":"Description","description":"Description shown above the map."},"years":{"items":{"type":"string"},"type":"array","title":"Years","description":"A list of years for which the maps have been generated."}},"type":"object","required":["is_utopia","map_name","map_json","options","description","years"],"title":"UtopiaResponse","description":"The response to an UtopiaRequest."},"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"},"VariableDB":{"properties":{"name":{"type":"string","title":"Name","description":"Descriptive name of the variable. This can be used in UI and visualizations. Example: 'velocity'."},"symbol":{"type":"string","title":"Symbol","description":"Symbol to represent the variable. This will be used in the rest of the problem definition. It may also be used in UIs and visualizations. Example: 'v_1'."},"variable_type":{"$ref":"#/components/schemas/VariableTypeEnum","description":"Type of the variable. Can be real, integer or binary."},"lowerbound":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lowerbound","description":"Lower bound of the variable."},"upperbound":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Upperbound","description":"Upper bound of the variable."},"initial_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Value","description":"Initial value of the variable. This is optional."},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"problem_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Problem Id"}},"type":"object","required":["name","symbol","variable_type"],"title":"VariableDB","description":"The SQLModel equivalent to `Variable`."},"VariableDomainTypeEnum":{"type":"string","enum":["continuous","binary","integer","mixed"],"title":"VariableDomainTypeEnum","description":"An enumerator for the possible variable type domains of a problem."},"VariableTypeEnum":{"type":"string","enum":["real","integer","binary"],"title":"VariableTypeEnum","description":"An enumerator for possible variable types."},"VotingPreference":{"properties":{"method":{"type":"string","title":"Method","default":"voting"},"set_preferences":{"additionalProperties":{"type":"integer"},"type":"object","title":"Set Preferences"}},"type":"object","required":["set_preferences"],"title":"VotingPreference","description":"Voting preferences."}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"login"}}},"APIKeyCookie":{"type":"apiKey","in":"cookie","name":"access_token"}}}}