DESDEO (fast)API 0.1.0
A rest API for the DESDEO framework.
Endpoints
GET /user_info
Get Current User Info
Description
Return information about the current user.
Args:
user (Annotated[User, Depends): user dependency, handled by
get_current_user.
Returns: UserPublic: public information about the current user.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Response 200 OK
Schema of the response body
{
"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."
}
POST /login
Login
Description
Login to get an authentication token.
Return an access token in the response and a cookie storing a refresh token.
Args: form_data (Annotated[OAuth2PasswordRequestForm, Depends()]): The form data to authenticate the user. session (Annotated[Session, Depends(get_db)]): The database session. cookie_max_age (int): the lifetime of the cookie storing the refresh token.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
cookie_max_age |
query | integer | 30 | No |
Request body
{
"grant_type": null,
"username": "string",
"password": "************",
"scope": "string",
"client_id": null,
"client_secret": null
}
Schema of the request body
{
"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"
}
Response 200 OK
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /logout
Logout
Description
Log the current user out. Deletes the refresh token that was set by logging in.
Args: None
Returns: JSONResponse: A response in which the cookies are deleted
Response 200 OK
POST /refresh
Refresh Access Token
Description
Refresh the access token using the refresh token stored in the cookie.
Args: request (Request): The request containing the cookie. session (Annotated[Session, Depends(get_db)]): the database session. refresh_token (Annotated[Str | None, Cookie()]): the refresh token, which is fetched from a cookie included in the response.
Returns: dict: A dictionary containing the new access token.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
refresh_token |
cookie | None | No |
Response 200 OK
Response 422 Unprocessable Entity
POST /add_new_dm
Add New Dm
Description
Add a new user of the role Decision Maker to the database. Requires no login.
Args: form_data (Annotated[OAuth2PasswordRequestForm, Depends()]): The user credentials to add to the database. session (Annotated[Session, Depends(get_session)]): the database session.
Returns: JSONResponse: A JSON response
Raises: HTTPException: if username is already in use or if saving to the database fails for some reason.
Request body
{
"grant_type": null,
"username": "string",
"password": "************",
"scope": "string",
"client_id": null,
"client_secret": null
}
Schema of the request body
{
"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"
}
Response 200 OK
Response 422 Unprocessable Entity
POST /add_new_analyst
Add New Analyst
Description
Add a new user of the role Analyst to the database. Requires a logged in analyst or an admin.
Args: user: Annotated[User, Depends(get_current_user)]: Logged in user with the role "analyst" or "admin". form_data: (Annotated[OAuth2PasswordRequestForm, Depends()]): The user credentials to add to the database. session: (Annotated[Session, Depends(get_session)]): the database session.
Returns: JSONResponse: A JSON response
Raises: HTTPException: if the logged in user is not an analyst or an admin or if username is already in use or if saving to the database fails for some reason.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"grant_type": null,
"username": "string",
"password": "************",
"scope": "string",
"client_id": null,
"client_secret": null
}
Schema of the request body
{
"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"
}
Response 200 OK
Response 422 Unprocessable Entity
GET /problem/all
Get Problems
Description
Get information on all the current user's problems.
Args: user (Annotated[User, Depends): the current user.
Returns: list[ProblemInfoSmall]: a list of information on all the problems.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Response 200 OK
[
{
"name": "string",
"description": "string",
"is_convex": null,
"is_linear": null,
"is_twice_differentiable": null,
"scenario_keys": null,
"variable_domain": "continuous",
"id": 0,
"user_id": 0,
"problem_metadata": null
}
]
GET /problem/all_info
Get Problems Info
Description
Get detailed information on all the current user's problems.
Args: user (Annotated[User, Depends): the current user.
Returns: list[ProblemInfo]: a list of the detailed information on all the problems.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Response 200 OK
[
{
"name": "string",
"description": "string",
"is_convex": null,
"is_linear": null,
"is_twice_differentiable": null,
"scenario_keys": null,
"variable_domain": "continuous",
"id": 0,
"user_id": 0,
"constants": null,
"tensor_constants": null,
"variables": null,
"tensor_variables": null,
"objectives": [
{
"func": null,
"scenario_keys": null,
"surrogates": null,
"simulator_path": null,
"name": "string",
"symbol": "string",
"unit": null,
"maximize": true,
"ideal": null,
"nadir": null,
"objective_type": "analytical",
"is_linear": true,
"is_convex": true,
"is_twice_differentiable": true,
"id": null,
"problem_id": null
}
],
"constraints": null,
"scalarization_funcs": null,
"extra_funcs": null,
"discrete_representation": null,
"simulators": null,
"problem_metadata": null
}
]
POST /problem/get
Get Problem
Description
Get the model of a specific problem.
Args:
request (ProblemGetRequest): the request containing the problem's id
problem_id.
user (Annotated[User, Depends): the current user.
session (Annotated[Session, Depends): the database session.
Raises: HTTPException: could not find a problem with the given id.
Returns: ProblemInfo: detailed information on the requested problem.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
{
"name": "string",
"description": "string",
"is_convex": null,
"is_linear": null,
"is_twice_differentiable": null,
"scenario_keys": null,
"variable_domain": "continuous",
"id": 0,
"user_id": 0,
"constants": null,
"tensor_constants": null,
"variables": null,
"tensor_variables": null,
"objectives": [
{
"func": null,
"scenario_keys": null,
"surrogates": null,
"simulator_path": null,
"name": "string",
"symbol": "string",
"unit": null,
"maximize": true,
"ideal": null,
"nadir": null,
"objective_type": "analytical",
"is_linear": true,
"is_convex": true,
"is_twice_differentiable": true,
"id": null,
"problem_id": null
}
],
"constraints": null,
"scalarization_funcs": null,
"extra_funcs": null,
"discrete_representation": null,
"simulators": null,
"problem_metadata": null
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /problem/add
Add Problem
Description
Add a newly defined problem to the database.
Args: request (Problem): the JSON representation of the problem. user (Annotated[User, Depends): the current user. session (Annotated[Session, Depends): the database session.
Note: Users with the role 'guest' may not add new problems.
Raises: HTTPException: when any issue with defining the problem arises.
Returns: ProblemInfo: the information about the problem added.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Response 200 OK
{
"name": "string",
"description": "string",
"is_convex": null,
"is_linear": null,
"is_twice_differentiable": null,
"scenario_keys": null,
"variable_domain": "continuous",
"id": 0,
"user_id": 0,
"constants": null,
"tensor_constants": null,
"variables": null,
"tensor_variables": null,
"objectives": [
{
"func": null,
"scenario_keys": null,
"surrogates": null,
"simulator_path": null,
"name": "string",
"symbol": "string",
"unit": null,
"maximize": true,
"ideal": null,
"nadir": null,
"objective_type": "analytical",
"is_linear": true,
"is_convex": true,
"is_twice_differentiable": true,
"id": null,
"problem_id": null
}
],
"constraints": null,
"scalarization_funcs": null,
"extra_funcs": null,
"discrete_representation": null,
"simulators": null,
"problem_metadata": null
}
Schema of the response body
{
"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."
}
POST /problem/add_json
Add Problem Json
Description
Adds a problem to the database based on its JSON definition.
Args: json_file (UploadFile): a file in JSON format describing the problem. user (Annotated[User, Depends): the usr for which the problem is added. session (Annotated[Session, Depends): the database session.
Raises:
HTTPException: if the provided json_file is empty.
HTTPException: if the content in the provided json_file is not in JSON
format.annotations
Returns: ProblemInfo: a description of the added problem.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
{
"name": "string",
"description": "string",
"is_convex": null,
"is_linear": null,
"is_twice_differentiable": null,
"scenario_keys": null,
"variable_domain": "continuous",
"id": 0,
"user_id": 0,
"constants": null,
"tensor_constants": null,
"variables": null,
"tensor_variables": null,
"objectives": [
{
"func": null,
"scenario_keys": null,
"surrogates": null,
"simulator_path": null,
"name": "string",
"symbol": "string",
"unit": null,
"maximize": true,
"ideal": null,
"nadir": null,
"objective_type": "analytical",
"is_linear": true,
"is_convex": true,
"is_twice_differentiable": true,
"id": null,
"problem_id": null
}
],
"constraints": null,
"scalarization_funcs": null,
"extra_funcs": null,
"discrete_representation": null,
"simulators": null,
"problem_metadata": null
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /problem/get_metadata
Get Metadata
Description
Fetch specific metadata for a specific problem.
Fetch specific metadata for a specific problem. See all the possible metadata types from DESDEO/desdeo/api/models/problem.py Problem Metadata section.
Args: request (MetaDataGetRequest): the requested metadata type. user (Annotated[User, Depends]): the current user. session (Annotated[Session, Depends]): the database session.
Returns: list[ForestProblemMetadata | RepresentativeNonDominatedSolutions]: list containing all the metadata defined for the problem with the requested metadata type. If no match is found, returns an empty list.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
Schema of the response body
Response 422 Unprocessable Entity
POST /problem/assign_solver
Select Solver
Description
Assign a specific solver for a problem.
request: ProblemSelectSolverRequest: The request containing problem id and string representation of the solver user: Annotated[User, Depends(get_current_user): The user that is logged in. session: Annotated[Session, Depends(get_session)]: The database session.
Raises: HTTPException: Unknown solver, unauthorized user
Returns: JSONResponse: A simple confirmation.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
Response 422 Unprocessable Entity
POST /session/new
Create New Session
Description
.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /session/get
Get Session
Description
Return an interactive session with a given id for the current user.
Args: request (GetSessionRequest): a request containing the id of the session. user (Annotated[User, Depends): the current user. session (Annotated[Session, Depends): the database session.
Raises: HTTPException: could not find an interactive session with the given id for the current user.
Returns: InteractiveSessionInfo: info on the requested interactive session.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /method/rpm/solve
Solve Solutions
Description
Runs an iteration of the reference point method.
Args: request (RPMSolveRequest): a request with the needed information to run the method. user (Annotated[User, Depends): the current user. session (Annotated[Session, Depends): the current database session.
Returns: RPMState: a state with information on the results of iterating the reference point method once.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"scalarization_options": null,
"solver": null,
"solver_options": null,
"preference": {
"preference_type": "string",
"aspiration_levels": {}
}
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"id": null,
"preferences": {
"preference_type": "string",
"aspiration_levels": {}
},
"scalarization_options": null,
"solver": null,
"solver_options": null,
"solver_results": [
{
"optimal_variables": {},
"optimal_objectives": {},
"constraint_values": null,
"extra_func_values": null,
"scalarization_values": null,
"success": true,
"message": "string"
}
]
}
Schema of the response body
{
"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)."
}
Response 422 Unprocessable Entity
POST /method/nimbus/solve
Solve Solutions
Description
Solve the problem using the NIMBUS method.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"scalarization_options": null,
"solver": null,
"solver_options": null,
"preference": {
"preference_type": "string",
"aspiration_levels": {}
},
"current_objectives": {},
"num_desired": null
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"state_id": null,
"previous_preference": {
"preference_type": "string",
"aspiration_levels": {}
},
"previous_objectives": {},
"current_solutions": [
{
"name": null,
"solution_index": null,
"state_id": 0,
"objective_values": null,
"variable_values": null
}
],
"saved_solutions": null,
"all_solutions": null
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /method/nimbus/initialize
Initialize
Description
Initialize the problem for the NIMBUS method.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"starting_point": null,
"scalarization_options": null,
"solver": null,
"solver_options": null
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"state_id": null,
"current_solutions": [
{
"name": null,
"solution_index": null,
"state_id": 0,
"objective_values": null,
"variable_values": null
}
],
"saved_solutions": null,
"all_solutions": null
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /method/nimbus/save
Save
Description
Save solutions.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"solution_info": [
{
"state_id": 0,
"solution_index": 0,
"name": null
}
]
}
Schema of the request body
{
"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."
}
Response 200 OK
Schema of the response body
Response 422 Unprocessable Entity
POST /method/nimbus/intermediate
Solve Nimbus Intermediate
Description
Solve intermediate solutions by forwarding the request to generic intermediate endpoint with context nimbus.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"context": null,
"scalarization_options": null,
"solver": null,
"solver_options": null,
"num_desired": null,
"reference_solution_1": {
"state_id": 0,
"solution_index": 0,
"name": null
},
"reference_solution_2": null
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"state_id": null,
"reference_solution_1": {},
"reference_solution_2": {},
"current_solutions": [
{
"name": null,
"solution_index": null,
"state_id": 0,
"objective_values": null,
"variable_values": null
}
],
"saved_solutions": null,
"all_solutions": null
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /method/nimbus/get-or-initialize
Get Or Initialize
Description
Get the latest NIMBUS state if it exists, or initialize a new one if it doesn't.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"starting_point": null,
"scalarization_options": null,
"solver": null,
"solver_options": null
}
Schema of the request body
{
"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."
}
Response 200 OK
Schema of the response body
Response 422 Unprocessable Entity
POST /method/nimbus/finalize
Finalize Nimbus
Description
An endpoint for finishing up the nimbus process.
Args: request (NIMBUSFinalizeRequest): The request containing the final solution, etc. user (Annotated[User, Depends): The current user. session (Annotated[Session, Depends): The database session.
Raises: HTTPException
Returns: NIMBUSFinalizeResponse: Response containing state id of the final solution.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"solution_info": {
"state_id": 0,
"solution_index": 0,
"name": null
},
"preferences": {
"preference_type": "string",
"aspiration_levels": {}
}
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"state_id": null,
"final_solution": {
"name": null,
"solution_index": null,
"state_id": 0,
"objective_values": null,
"variable_values": null
}
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /method/nimbus/delete_save
Delete Save
Description
Endpoint for deleting saved solutions.
Args: request (NIMBUSDeleteSaveRequest): request containing necessary information for deleting a save user (Annotated[User, Depends): the current (logged in) user session (Annotated[Session, Depends): database session
Raises: HTTPException
Returns: NIMBUSDeleteSaveResponse: Response acknowledging the deletion of save and other useful info.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
Response 422 Unprocessable Entity
POST /method/generic/intermediate
Solve Intermediate
Description
Solve intermediate solutions between given two solutions.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"context": null,
"scalarization_options": null,
"solver": null,
"solver_options": null,
"num_desired": null,
"reference_solution_1": {
"state_id": 0,
"solution_index": 0,
"name": null
},
"reference_solution_2": null
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"state_id": null,
"reference_solution_1": {
"name": null,
"solution_index": null,
"state_id": 0,
"objective_values": null,
"variable_values": null
},
"reference_solution_2": null,
"intermediate_solutions": null
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /method/generic/score-bands
Calculate Score Bands
Description
Calculate SCORE bands parameters from objective data.
Request body
{
"data": [
[
10.12
]
],
"objs": [
"string"
],
"dist_parameter": 10.12,
"use_absolute_corr": true,
"distance_formula": 0,
"flip_axes": true,
"clustering_algorithm": "string",
"clustering_score": "string"
}
Schema of the request body
{
"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."
}
Response 200 OK
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /utopia/
Get Utopia Data
Description
Request and receive the Utopia map corresponding to the decision variables sent.
Args: request (UtopiaRequest): the set of decision variables and problem for which the utopia forest map is requested for. user (Annotated[User, Depend(get_current_user)]) the current user session (Annotated[Session, Depends(get_session)]) the current database session Raises: HTTPException: Returns: UtopiaResponse: the map for the forest, to be rendered in frontend
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
{
"is_utopia": true,
"map_name": "string",
"map_json": {},
"options": {},
"description": "string",
"years": [
"string"
]
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /gdm/create_group
Create Group
Description
Create group.
Args: request (GroupCreateRequest): a request that holds information to be used in creation of the group. user (Annotated[User, Depends(get_current_user)]): the current user. session (Annotated[Session, Depends(get_session)]): the database session.
Returns: JSONResponse: Aknowledgement that the gourp was created
Raises: HTTPException
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
Response 200 OK
Response 422 Unprocessable Entity
POST /gdm/delete_group
Delete Group
Description
Delete the group with given ID.
Args: request (GroupInfoRequest): Contains the ID of the group to be deleted user (Annotated[User, Depends(get_current_user)]): The user (in this case must be owner for anything to happen) session (Annotated[Session, Depends(get_session)]): The database session
Returns: JSONResponse: Aknowledgement of the deletion
Raises: HTTPException: Insufficient authorization etc.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
Response 422 Unprocessable Entity
POST /gdm/add_to_group
Add To Group
Description
Add a user to a group.
Args: request (GroupModifyRequest): Request object that has group and user IDs. user (Annotated[User, Depends(get_current_user)]): the current user. session (Annotated[Session, Depends(get_session)]): the database session.
Returns: JSONResponse: Aknowledge that user has been added to the group
Raises: HTTPException: Authorization issues, group or user not found.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
Response 422 Unprocessable Entity
POST /gdm/remove_from_group
Remove From Group
Description
Remove user from group.
Args: request (GroupModifyRequest): Request object that has group and user IDs. user (Annotated[User, Depends(get_current_user)]): the current user. session (Annotated[Session, Depends(get_session)]): the database session.
Returns: JSONResponse: Aknowledge that user has been removed from the group.
Raises: HTTPException: Authorization issues, group or user not found.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
Response 422 Unprocessable Entity
POST /gdm/get_group_info
Get Group Info
Description
Get information about the group.
Args: request (GroupInfoRequest): the id of the group for which we desire info on session (Annotated[Session, Depends(get_session)]): the database session
Returns: GroupPublic: public info of the group
Raises: HTTPException: If there's no group with the requests group id
Request body
Response 200 OK
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /gnimbus/initialize
Gnimbus Initialize
Description
Initialize the problem for GNIMBUS.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
Response 422 Unprocessable Entity
POST /gnimbus/get_latest_results
Get Latest Results
Description
Get the latest results from group iteration.
Args: request (GroupInfoRequest): essentially just the ID of the group user (Annotated[User, Depends(get_current_user)]): Current user session (Annotated[Session, Depends(get_session)]): Database session.
Returns: GNIMBUSResultResponse: A GNIMBUSResultResponse response containing the latest gnimbus results
Raises: HTTPException: Validation errors or no results
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
{
"method": "string",
"phase": "string",
"preferences": null,
"common_results": [
{
"name": null,
"solution_index": null,
"state": {
"id": null,
"problem_id": null,
"session_id": null,
"parent_id": null,
"state_id": null
},
"objective_values_all": [
{}
],
"variable_values_all": [
{}
],
"objective_values": null,
"variable_values": null,
"state_id": 0,
"num_solutions": 0
}
],
"user_results": null,
"personal_result_index": null
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /gnimbus/all_iterations
Full Iteration
Description
Get all results from all iterations of the group.
Args: request (GroupInfoRequest): essentially just the ID of the group user (Annotated[User, Depends(get_current_user)]): current user session (Annotated[Session, Depends(get_session)]): current session
Returns: GNIMBUSAllIterationsResponse: A GNIMBUSAllIterationsResponse response containing all the results of the iterations. If last iteration was optimization, the first iteration is incomplete (i.e. the voting preferences and voting results are missing)
Raises: HTTPException: Validation errors or no results or no states and such.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
{
"all_full_iterations": [
{
"phase": "string",
"optimization_preferences": null,
"voting_preferences": null,
"starting_result": null,
"common_results": [
{
"name": null,
"solution_index": null,
"state": {
"id": null,
"problem_id": null,
"session_id": null,
"parent_id": null,
"state_id": null
},
"objective_values_all": [
{}
],
"variable_values_all": [
{}
],
"objective_values": null,
"variable_values": null,
"state_id": 0,
"num_solutions": 0
}
],
"user_results": null,
"personal_result_index": null,
"final_result": null
}
]
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /gnimbus/toggle_phase
Switch Phase
Description
Switch the phase from one to another. "learning", "crp", "decision" and "compromise" phases are allowed.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
Schema of the response body
Response 422 Unprocessable Entity
POST /gnimbus/get_phase
Get Phase
Description
Get the current phase of the group.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Response 200 OK
Response 422 Unprocessable Entity
POST /method/enautilus/step
Step
Description
.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"representative_solutions_id": null,
"current_iteration": 0,
"iterations_left": 0,
"selected_point": {},
"reachable_point_indices": [
0
],
"number_of_intermediate_points": 0
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"id": null,
"non_dominated_solutions_id": null,
"current_iteration": 0,
"iterations_left": 0,
"selected_point": null,
"reachable_point_indices": [
0
],
"number_of_intermediate_points": 0,
"enautilus_results": {
"current_iteration": 0,
"iterations_left": 0,
"intermediate_points": [
{}
],
"reachable_best_bounds": [
{}
],
"reachable_worst_bounds": [
{}
],
"closeness_measures": [
10.12
],
"reachable_point_indices": [
[
0
]
]
}
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
EMO
POST /method/emo/iterate
Iterate
Description
Starts the EMO method.
Args: request (EMOSolveRequest): The request object containing parameters for the EMO method. user (Annotated[User, Depends]): The current user. session (Annotated[Session, Depends]): The database session.
Raises: HTTPException: If the request is invalid or the EMO method fails.
Returns: IterateResponse: A response object containing a list of IDs to be used for websocket communication. Also contains the StateDB id where the results will be stored.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"template_options": null,
"preference_options": null
}
Schema of the request body
{
"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."
}
Response 200 OK
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
POST /method/emo/fetch
Fetch Results
Description
Fetches results from a completed EMO method.
Args: request (EMOFetchRequest): The request object containing parameters for fetching results. user (Annotated[User, Depends]): The current user. session (Annotated[Session, Depends]): The database session.
Raises: HTTPException: If the request is invalid or the EMO method has not completed.
Returns: StreamingResponse: A streaming response containing the results of the EMO method.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
Schema of the request body
{
"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."
}
Response 200 OK
Response 422 Unprocessable Entity
POST /method/emo/fetch_score
Fetch Score Bands
Description
Fetches results from a completed EMO method.
Args: request (EMOFetchRequest): The request object containing parameters for fetching results and of the SCORE bands visualization. user (Annotated[User, Depends]): The current user. session (Annotated[Session, Depends]): The database session.
Raises: HTTPException: If the request is invalid or the EMO method has not completed.
Returns: SCOREBandsResult: The results of the SCORE bands visualization.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
APIKeyCookie |
cookie | string | N/A | No | API key |
OAuth2PasswordBearer |
header | string | N/A | No |
Request body
{
"problem_id": 0,
"session_id": null,
"parent_state_id": null,
"config": null,
"solution_ids": [
0
]
}
Schema of the request body
{
"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."
}
Response 200 OK
{
"state_id": null,
"result": {
"options": {
"dimensions": null,
"axis_positions": null,
"clustering_algorithm": null,
"distance_formula": 0,
"distance_parameter": 10.12,
"use_absolute_correlations": true,
"include_solutions": true,
"include_medians": true,
"interval_size": 10.12,
"scales": null
},
"ordered_dimensions": [
"string"
],
"clusters": [
0
],
"axis_positions": {},
"bands": {},
"medians": {},
"cardinalities": {}
}
}
Schema of the response body
{
"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."
}
Response 422 Unprocessable Entity
Schemas
BinaryFlipMutationOptions
| Name | Type |
|---|---|
mutation_probability |
|
name |
string |
BlendAlphaCrossoverOptions
| Name | Type |
|---|---|
alpha |
number |
name |
string |
xover_probability |
number |
Body_add_new_analyst_add_new_analyst_post
| Name | Type |
|---|---|
client_id |
|
client_secret |
|
grant_type |
|
password |
string(password) |
scope |
string |
username |
string |
Body_add_new_dm_add_new_dm_post
| Name | Type |
|---|---|
client_id |
|
client_secret |
|
grant_type |
|
password |
string(password) |
scope |
string |
username |
string |
Body_add_problem_json_problem_add_json_post
| Name | Type |
|---|---|
json_file |
string(binary) |
Body_login_login_post
| Name | Type |
|---|---|
client_id |
|
client_secret |
|
grant_type |
|
password |
string(password) |
scope |
string |
username |
string |
BoundedExponentialCrossoverOptions
| Name | Type |
|---|---|
lambda_ |
number |
name |
string |
xover_probability |
number |
BoundedPolynomialMutationOptions
| Name | Type |
|---|---|
distribution_index |
number |
mutation_probability |
|
name |
string |
ClipRepairOptions
| Name | Type |
|---|---|
lower_bounds |
|
name |
string |
upper_bounds |
CompositeTerminatorOptions
| Name | Type |
|---|---|
mode |
string |
name |
string |
terminators |
Array<> |
ConstantDB
| Name | Type |
|---|---|
id |
|
name |
string |
problem_id |
|
symbol |
string |
value |
number |
ConstraintDB
| Name | Type |
|---|---|
cons_type |
ConstraintTypeEnum |
func |
Array<> |
id |
|
is_convex |
boolean |
is_linear |
boolean |
is_twice_differentiable |
boolean |
name |
string |
problem_id |
|
scenario_keys |
|
simulator_path |
|
surrogates |
|
symbol |
string |
ConstraintTypeEnum
Type: string
CreateSessionRequest
| Name | Type |
|---|---|
info |
CustomClusterOptions
| Name | Type |
|---|---|
clusters |
Array<integer> |
name |
string |
DBSCANOptions
| Name | Type |
|---|---|
name |
string |
DesirableRangesOptions
| Name | Type |
|---|---|
aspiration_levels |
|
desirability_levels |
Array<> |
method |
string |
name |
string |
reservation_levels |
DimensionClusterOptions
| Name | Type |
|---|---|
dimension_name |
string |
kind |
string |
n_clusters |
integer |
name |
string |
DiscreteRepresentationDB
| Name | Type |
|---|---|
id |
|
non_dominated |
boolean |
objective_values |
|
problem_id |
|
variable_values |
DistanceFormula
Type: integer
EMOFetchRequest
| Name | Type |
|---|---|
num_solutions |
integer |
parent_state_id |
|
problem_id |
integer |
session_id |
EMOIterateRequest
| Name | Type |
|---|---|
parent_state_id |
|
preference_options |
|
problem_id |
integer |
session_id |
|
template_options |
EMOIterateResponse
| Name | Type |
|---|---|
client_id |
string |
method_ids |
Array<string> |
state_id |
integer |
EMOScoreRequest
| Name | Type |
|---|---|
config |
|
parent_state_id |
|
problem_id |
integer |
session_id |
|
solution_ids |
Array<integer> |
EMOScoreResponse
| Name | Type |
|---|---|
result |
SCOREBandsResult |
state_id |
ENautilusResult
| Name | Type |
|---|---|
closeness_measures |
Array<number> |
current_iteration |
integer |
intermediate_points |
Array<> |
iterations_left |
integer |
reachable_best_bounds |
Array<> |
reachable_point_indices |
Array<Array<integer>> |
reachable_worst_bounds |
Array<> |
ENautilusState
| Name | Type |
|---|---|
current_iteration |
integer |
enautilus_results |
ENautilusResult |
id |
|
iterations_left |
integer |
non_dominated_solutions_id |
|
number_of_intermediate_points |
integer |
reachable_point_indices |
Array<integer> |
selected_point |
EnautilusStepRequest
| Name | Type |
|---|---|
current_iteration |
integer |
iterations_left |
integer |
number_of_intermediate_points |
integer |
parent_state_id |
|
problem_id |
integer |
reachable_point_indices |
Array<integer> |
representative_solutions_id |
|
selected_point |
|
session_id |
EndProcessPreference
| Name | Type |
|---|---|
method |
string |
set_preferences |
|
success |
ExternalCheckTerminatorOptions
| Name | Type |
|---|---|
name |
string |
ExtraFunctionDB
| Name | Type |
|---|---|
func |
Array<> |
id |
|
is_convex |
boolean |
is_linear |
boolean |
is_twice_differentiable |
boolean |
name |
string |
problem_id |
|
scenario_keys |
|
simulator_path |
|
surrogates |
|
symbol |
string |
ForestProblemMetaData
| Name | Type |
|---|---|
compensation |
|
id |
|
map_json |
string |
metadata_id |
|
metadata_type |
string |
schedule_dict |
|
stand_descriptor |
|
stand_id_field |
string |
years |
Array<string> |
FullIteration
| Name | Type |
|---|---|
common_results |
Array<SolutionReference> |
final_result |
|
optimization_preferences |
|
personal_result_index |
|
phase |
string |
starting_result |
|
user_results |
Array<SolutionReference> |
voting_preferences |
GenericIntermediateSolutionResponse
| Name | Type |
|---|---|
intermediate_solutions |
Array<SolutionReferenceResponse> |
reference_solution_1 |
SolutionReferenceResponse |
reference_solution_2 |
SolutionReferenceResponse |
state_id |
GetSessionRequest
| Name | Type |
|---|---|
session_id |
integer |
GMMOptions
| Name | Type |
|---|---|
name |
string |
scoring_method |
string |
GNIMBUSAllIterationsResponse
| Name | Type |
|---|---|
all_full_iterations |
Array<FullIteration> |
GNIMBUSResultResponse
| Name | Type |
|---|---|
common_results |
Array<SolutionReference> |
method |
string |
personal_result_index |
|
phase |
string |
preferences |
|
user_results |
Array<SolutionReference> |
GNIMBUSSwitchPhaseRequest
| Name | Type |
|---|---|
group_id |
integer |
new_phase |
string |
GNIMBUSSwitchPhaseResponse
| Name | Type |
|---|---|
new_phase |
string |
old_phase |
string |
GroupCreateRequest
| Name | Type |
|---|---|
group_name |
string |
problem_id |
integer |
GroupInfoRequest
| Name | Type |
|---|---|
group_id |
integer |
GroupModifyRequest
| Name | Type |
|---|---|
group_id |
integer |
user_id |
integer |
GroupPublic
| Name | Type |
|---|---|
id |
integer |
name |
string |
owner_id |
integer |
problem_id |
integer |
user_ids |
Array<integer> |
HTTPValidationError
| Name | Type |
|---|---|
detail |
Array<ValidationError> |
IBEASelectorOptions
| Name | Type |
|---|---|
binary_indicator |
string |
kappa |
number |
name |
string |
population_size |
integer |
IntegerRandomMutationOptions
| Name | Type |
|---|---|
mutation_probability |
|
name |
string |
InteractiveSessionBase
| Name | Type |
|---|---|
id |
|
info |
|
user_id |
IntermediateSolutionRequest
| Name | Type |
|---|---|
context |
|
num_desired |
|
parent_state_id |
|
problem_id |
integer |
reference_solution_1 |
SolutionInfo |
reference_solution_2 |
SolutionInfo |
scalarization_options |
|
session_id |
|
solver |
|
solver_options |
KMeansOptions
| Name | Type |
|---|---|
n_clusters |
integer |
name |
string |
LHSGeneratorOptions
| Name | Type |
|---|---|
n_points |
integer |
name |
string |
LocalCrossoverOptions
| Name | Type |
|---|---|
name |
string |
xover_probability |
number |
MaxEvaluationsTerminatorOptions
| Name | Type |
|---|---|
max_evaluations |
integer |
name |
string |
MaxGenerationsTerminatorOptions
| Name | Type |
|---|---|
max_generations |
integer |
name |
string |
MaxTimeTerminatorOptions
| Name | Type |
|---|---|
max_time |
number |
name |
string |
MixedIntegerRandomMutationOptions
| Name | Type |
|---|---|
mutation_probability |
|
name |
string |
MPTMutationOptions
| Name | Type |
|---|---|
mutation_exponent |
number |
mutation_probability |
|
name |
string |
NIMBUSClassificationRequest
| Name | Type |
|---|---|
current_objectives |
|
num_desired |
|
parent_state_id |
|
preference |
ReferencePoint |
problem_id |
integer |
scalarization_options |
|
session_id |
|
solver |
|
solver_options |
NIMBUSClassificationResponse
| Name | Type |
|---|---|
all_solutions |
Array<SolutionReferenceResponse> |
current_solutions |
Array<SolutionReferenceResponse> |
previous_objectives |
|
previous_preference |
ReferencePoint |
saved_solutions |
Array<SolutionReferenceResponse> |
state_id |
NIMBUSDeleteSaveRequest
| Name | Type |
|---|---|
solution_index |
integer |
state_id |
integer |
NIMBUSDeleteSaveResponse
| Name | Type |
|---|---|
message |
NIMBUSFinalizeRequest
| Name | Type |
|---|---|
parent_state_id |
|
preferences |
ReferencePoint |
problem_id |
integer |
session_id |
|
solution_info |
SolutionInfo |
NIMBUSFinalizeResponse
| Name | Type |
|---|---|
final_solution |
SolutionReferenceResponse |
state_id |
NIMBUSInitializationRequest
| Name | Type |
|---|---|
parent_state_id |
|
problem_id |
integer |
scalarization_options |
|
session_id |
|
solver |
|
solver_options |
|
starting_point |
NIMBUSInitializationResponse
| Name | Type |
|---|---|
all_solutions |
Array<SolutionReferenceResponse> |
current_solutions |
Array<SolutionReferenceResponse> |
saved_solutions |
Array<SolutionReferenceResponse> |
state_id |
NIMBUSIntermediateSolutionResponse
| Name | Type |
|---|---|
all_solutions |
Array<SolutionReferenceResponse> |
current_solutions |
Array<SolutionReferenceResponse> |
reference_solution_1 |
|
reference_solution_2 |
|
saved_solutions |
Array<SolutionReferenceResponse> |
state_id |
NIMBUSSaveRequest
| Name | Type |
|---|---|
parent_state_id |
|
problem_id |
integer |
session_id |
|
solution_info |
Array<SolutionInfo> |
NIMBUSSaveResponse
| Name | Type |
|---|---|
state_id |
NonPreferredSolutionsOptions
| Name | Type |
|---|---|
method |
string |
name |
string |
preference |
NonUniformMutationOptions
| Name | Type |
|---|---|
b |
number |
max_generations |
integer |
mutation_probability |
|
name |
string |
NoRepairOptions
| Name | Type |
|---|---|
name |
string |
NSGA3SelectorOptions
| Name | Type |
|---|---|
invert_reference_vectors |
boolean |
name |
string |
reference_vector_options |
ReferenceVectorOptions |
ObjectiveDB
| Name | Type |
|---|---|
func |
|
id |
|
ideal |
|
is_convex |
boolean |
is_linear |
boolean |
is_twice_differentiable |
boolean |
maximize |
boolean |
nadir |
|
name |
string |
objective_type |
ObjectiveTypeEnum |
problem_id |
|
scenario_keys |
|
simulator_path |
|
surrogates |
|
symbol |
string |
unit |
ObjectiveTypeEnum
Type: string
OptimizationPreference
| Name | Type |
|---|---|
method |
string |
phase |
string |
set_preferences |
ParameterAdaptationStrategy
Type: string
PowerMutationOptions
| Name | Type |
|---|---|
mutation_probability |
|
name |
string |
p |
number |
PreferredSolutionsOptions
| Name | Type |
|---|---|
method |
string |
name |
string |
preference |
ProblemGetRequest
| Name | Type |
|---|---|
problem_id |
integer |
ProblemInfo
| Name | Type |
|---|---|
constants |
|
constraints |
|
description |
string |
discrete_representation |
|
extra_funcs |
|
id |
integer |
is_convex |
|
is_linear |
|
is_twice_differentiable |
|
name |
string |
objectives |
Array<ObjectiveDB> |
problem_metadata |
|
scalarization_funcs |
|
scenario_keys |
|
simulators |
|
tensor_constants |
|
tensor_variables |
|
user_id |
integer |
variable_domain |
VariableDomainTypeEnum |
variables |
ProblemInfoSmall
| Name | Type |
|---|---|
description |
string |
id |
integer |
is_convex |
|
is_linear |
|
is_twice_differentiable |
|
name |
string |
problem_metadata |
|
scenario_keys |
|
user_id |
integer |
variable_domain |
VariableDomainTypeEnum |
ProblemMetaDataGetRequest
| Name | Type |
|---|---|
metadata_type |
string |
problem_id |
integer |
ProblemMetaDataPublic
| Name | Type |
|---|---|
forest_metadata |
|
problem_id |
integer |
representative_nd_metadata |
ProblemSelectSolverRequest
| Name | Type |
|---|---|
problem_id |
integer |
solver_string_representation |
string |
RandomBinaryGeneratorOptions
| Name | Type |
|---|---|
n_points |
integer |
name |
string |
RandomGeneratorOptions
| Name | Type |
|---|---|
n_points |
integer |
name |
string |
RandomIntegerGeneratorOptions
| Name | Type |
|---|---|
n_points |
integer |
name |
string |
RandomMixedIntegerGeneratorOptions
| Name | Type |
|---|---|
n_points |
integer |
name |
string |
ReferencePoint
| Name | Type |
|---|---|
aspiration_levels |
|
preference_type |
string |
ReferencePointOptions
| Name | Type |
|---|---|
method |
string |
name |
string |
preference |
ReferenceVectorOptions
| Name | Type |
|---|---|
adaptation_distance |
number |
adaptation_frequency |
integer |
creation_type |
string |
lattice_resolution |
|
non_preferred_solutions |
|
number_of_vectors |
integer |
preferred_ranges |
|
preferred_solutions |
|
reference_point |
|
vector_type |
string |
RepresentativeNonDominatedSolutions
| Name | Type |
|---|---|
description |
|
id |
|
ideal |
|
metadata_id |
|
metadata_type |
string |
nadir |
|
name |
string |
solution_data |
RouletteWheelSelectionOptions
| Name | Type |
|---|---|
name |
string |
tournament_size |
integer |
winner_size |
integer |
RPMSolveRequest
| Name | Type |
|---|---|
parent_state_id |
|
preference |
ReferencePoint |
problem_id |
integer |
scalarization_options |
|
session_id |
|
solver |
|
solver_options |
RPMState
| Name | Type |
|---|---|
id |
|
preferences |
ReferencePoint |
scalarization_options |
|
solver |
|
solver_options |
|
solver_results |
Array<SolverResults> |
RVEASelectorOptions
| Name | Type |
|---|---|
alpha |
number |
name |
string |
parameter_adaptation_strategy |
ParameterAdaptationStrategy |
reference_vector_options |
ReferenceVectorOptions |
ScalarizationFunctionDB
| Name | Type |
|---|---|
func |
Array<> |
id |
|
is_convex |
boolean |
is_linear |
boolean |
is_twice_differentiable |
boolean |
name |
string |
problem_id |
|
scenario_keys |
Array<string> |
symbol |
SCOREBandsConfig
| Name | Type |
|---|---|
axis_positions |
|
clustering_algorithm |
|
dimensions |
|
distance_formula |
DistanceFormula |
distance_parameter |
number |
include_medians |
boolean |
include_solutions |
boolean |
interval_size |
number |
scales |
|
use_absolute_correlations |
boolean |
ScoreBandsRequest
| Name | Type |
|---|---|
clustering_algorithm |
string |
clustering_score |
string |
data |
Array<Array<number>> |
dist_parameter |
number |
distance_formula |
integer |
flip_axes |
boolean |
objs |
Array<string> |
use_absolute_corr |
boolean |
ScoreBandsResponse
| Name | Type |
|---|---|
axis_dist |
Array<number> |
axis_signs |
|
groups |
Array<integer> |
obj_order |
Array<integer> |
SCOREBandsResult
| Name | Type |
|---|---|
axis_positions |
|
bands |
|
cardinalities |
|
clusters |
Array<integer> |
medians |
|
options |
SCOREBandsConfig |
ordered_dimensions |
Array<string> |
SelfAdaptiveGaussianMutationOptions
| Name | Type |
|---|---|
mutation_probability |
|
name |
string |
SimulatedBinaryCrossoverOptions
| Name | Type |
|---|---|
name |
string |
xover_distribution |
number |
xover_probability |
number |
SimulatorDB
| Name | Type |
|---|---|
file |
|
id |
|
name |
string |
parameter_options |
|
problem_id |
|
symbol |
string |
url |
SingleArithmeticCrossoverOptions
| Name | Type |
|---|---|
name |
string |
xover_probability |
number |
SinglePointBinaryCrossoverOptions
| Name | Type |
|---|---|
name |
string |
SolutionInfo
| Name | Type |
|---|---|
name |
|
solution_index |
integer |
state_id |
integer |
SolutionReference
| Name | Type |
|---|---|
name |
|
num_solutions |
integer |
objective_values |
|
objective_values_all |
Array<> |
solution_index |
|
state |
StateDB |
state_id |
integer |
variable_values |
|
variable_values_all |
Array<> |
SolutionReferenceResponse
| Name | Type |
|---|---|
name |
|
objective_values |
|
solution_index |
|
state_id |
integer |
variable_values |
SolverResults
| Name | Type |
|---|---|
constraint_values |
|
extra_func_values |
|
message |
string |
optimal_objectives |
|
optimal_variables |
|
scalarization_values |
|
success |
boolean |
SolverSelectionMetadata
| Name | Type |
|---|---|
id |
|
metadata_id |
|
metadata_type |
string |
solver_string_representation |
string |
StateDB
| Name | Type |
|---|---|
id |
|
parent_id |
|
problem_id |
|
session_id |
|
state_id |
Template1Options
| Name | Type |
|---|---|
algorithm_name |
string |
crossover |
|
generator |
|
mutation |
|
name |
string |
repair |
|
seed |
integer |
selection |
|
termination |
|
use_archive |
boolean |
verbosity |
integer |
Template2Options
| Name | Type |
|---|---|
algorithm_name |
string |
crossover |
|
generator |
|
mate_selection |
|
mutation |
|
name |
string |
repair |
|
seed |
integer |
selection |
|
termination |
|
use_archive |
boolean |
verbosity |
integer |
Tensor
Type:
TensorConstantDB
| Name | Type |
|---|---|
id |
|
name |
string |
problem_id |
|
shape |
Array<integer> |
symbol |
string |
values |
Tensor |
TensorVariableDB
| Name | Type |
|---|---|
id |
|
initial_values |
|
lowerbounds |
|
name |
string |
problem_id |
|
shape |
Array<integer> |
symbol |
string |
upperbounds |
|
variable_type |
VariableTypeEnum |
Tokens
| Name | Type |
|---|---|
access_token |
string |
refresh_token |
string |
token_type |
string |
TournamentSelectionOptions
| Name | Type |
|---|---|
name |
string |
tournament_size |
integer |
winner_size |
integer |
UniformIntegerCrossoverOptions
| Name | Type |
|---|---|
name |
string |
UniformMixedIntegerCrossoverOptions
| Name | Type |
|---|---|
name |
string |
Url
| Name | Type |
|---|---|
auth |
|
url |
string |
UserPublic
| Name | Type |
|---|---|
group_ids |
|
id |
integer |
role |
UserRole |
username |
string |
UserRole
Type: string
UtopiaRequest
| Name | Type |
|---|---|
problem_id |
integer |
solution |
SolutionInfo |
UtopiaResponse
| Name | Type |
|---|---|
description |
string |
is_utopia |
boolean |
map_json |
|
map_name |
string |
options |
|
years |
Array<string> |
ValidationError
| Name | Type |
|---|---|
loc |
Array<> |
msg |
string |
type |
string |
VariableDB
| Name | Type |
|---|---|
id |
|
initial_value |
|
lowerbound |
|
name |
string |
problem_id |
|
symbol |
string |
upperbound |
|
variable_type |
VariableTypeEnum |
VariableDomainTypeEnum
Type: string
VariableTypeEnum
Type: string
VotingPreference
| Name | Type |
|---|---|
method |
string |
set_preferences |
Security schemes
| Name | Type | Scheme | Description |
|---|---|---|---|
| OAuth2PasswordBearer | oauth2 | ||
| APIKeyCookie | apiKey |