Skip to content

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

{
    "username": "string",
    "id": 0,
    "role": "guest",
    "group_ids": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "access_token": "string",
    "refresh_token": "string",
    "token_type": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

Schema of the response body


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

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "items": {
        "$ref": "#/components/schemas/ProblemInfoSmall"
    },
    "type": "array",
    "title": "Response Get Problems Problem All Get"
}

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
    }
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "items": {
        "$ref": "#/components/schemas/ProblemInfo"
    },
    "type": "array",
    "title": "Response Get Problems Info Problem All Info Get"
}

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

{
    "problem_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "problem_id": {
            "type": "integer",
            "title": "Problem Id"
        }
    },
    "type": "object",
    "required": [
        "problem_id"
    ],
    "title": "ProblemGetRequest",
    "description": "Model to deal with problem fetching requests."
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "json_file": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ="
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "json_file": {
            "type": "string",
            "format": "binary",
            "title": "Json File"
        }
    },
    "type": "object",
    "required": [
        "json_file"
    ],
    "title": "Body_add_problem_json_problem_add_json_post"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "problem_id": 0,
    "metadata_type": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "items": {
        "anyOf": [
            {
                "$ref": "#/components/schemas/ForestProblemMetaData"
            },
            {
                "$ref": "#/components/schemas/RepresentativeNonDominatedSolutions"
            },
            {
                "$ref": "#/components/schemas/SolverSelectionMetadata"
            }
        ]
    },
    "type": "array",
    "title": "Response Get Metadata Problem Get Metadata Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "problem_id": 0,
    "solver_string_representation": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "info": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "info": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Info"
        }
    },
    "type": "object",
    "title": "CreateSessionRequest",
    "description": "Model of the request to create a new session."
}

Response 200 OK

{
    "id": null,
    "user_id": null,
    "info": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "session_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "session_id": {
            "type": "integer",
            "title": "Session Id"
        }
    },
    "type": "object",
    "required": [
        "session_id"
    ],
    "title": "GetSessionRequest",
    "description": "Model of the request to get a specific session."
}

Response 200 OK

{
    "id": null,
    "user_id": null,
    "info": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "state_id": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "state_id": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "State Id",
            "description": "The id of the newest state"
        }
    },
    "type": "object",
    "required": [
        "state_id"
    ],
    "title": "NIMBUSSaveResponse",
    "description": "The response from NIMBUS save endpoint."
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
{
    "anyOf": [
        {
            "$ref": "#/components/schemas/NIMBUSInitializationResponse"
        },
        {
            "$ref": "#/components/schemas/NIMBUSClassificationResponse"
        },
        {
            "$ref": "#/components/schemas/NIMBUSIntermediateSolutionResponse"
        }
    ],
    "title": "Response Get Or Initialize Method Nimbus Get Or Initialize Post"
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "state_id": 0,
    "solution_index": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "message": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "NIMBUSDeleteSaveResponse",
    "description": "Response of NIMBUS save deletion."
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "groups": [
        0
    ],
    "axis_dist": [
        10.12
    ],
    "axis_signs": null,
    "obj_order": [
        0
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "problem_id": 0,
    "solution": {
        "state_id": 0,
        "solution_index": 0,
        "name": null
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_name": "string",
    "problem_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "group_name": {
            "type": "string",
            "title": "Group Name"
        },
        "problem_id": {
            "type": "integer",
            "title": "Problem Id"
        }
    },
    "type": "object",
    "required": [
        "group_name",
        "problem_id"
    ],
    "title": "GroupCreateRequest",
    "description": "Used for requesting a group to be created."
}

Response 200 OK

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "group_id": {
            "type": "integer",
            "title": "Group Id"
        }
    },
    "type": "object",
    "required": [
        "group_id"
    ],
    "title": "GroupInfoRequest",
    "description": "Class for requesting group information."
}

Response 200 OK

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0,
    "user_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0,
    "user_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "group_id": {
            "type": "integer",
            "title": "Group Id"
        }
    },
    "type": "object",
    "required": [
        "group_id"
    ],
    "title": "GroupInfoRequest",
    "description": "Class for requesting group information."
}

Response 200 OK

{
    "id": 0,
    "name": "string",
    "owner_id": 0,
    "user_ids": [
        0
    ],
    "problem_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "group_id": {
            "type": "integer",
            "title": "Group Id"
        }
    },
    "type": "object",
    "required": [
        "group_id"
    ],
    "title": "GroupInfoRequest",
    "description": "Class for requesting group information."
}

Response 200 OK

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "group_id": {
            "type": "integer",
            "title": "Group Id"
        }
    },
    "type": "object",
    "required": [
        "group_id"
    ],
    "title": "GroupInfoRequest",
    "description": "Class for requesting group information."
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "group_id": {
            "type": "integer",
            "title": "Group Id"
        }
    },
    "type": "object",
    "required": [
        "group_id"
    ],
    "title": "GroupInfoRequest",
    "description": "Class for requesting group information."
}

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
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0,
    "new_phase": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "old_phase": "string",
    "new_phase": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "old_phase": {
            "type": "string",
            "title": "Old Phase"
        },
        "new_phase": {
            "type": "string",
            "title": "New Phase"
        }
    },
    "type": "object",
    "required": [
        "old_phase",
        "new_phase"
    ],
    "title": "GNIMBUSSwitchPhaseResponse",
    "description": "A response for the above request."
}

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "group_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "group_id": {
            "type": "integer",
            "title": "Group Id"
        }
    },
    "type": "object",
    "required": [
        "group_id"
    ],
    "title": "GroupInfoRequest",
    "description": "Class for requesting group information."
}

Response 200 OK

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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
            ]
        ]
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "method_ids": [
        "string"
    ],
    "client_id": "string",
    "state_id": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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

{
    "problem_id": 0,
    "session_id": null,
    "parent_state_id": null,
    "num_solutions": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

Schema of the response body

Response 422 Unprocessable Entity

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

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

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

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