REST API
Subpackages
Submodules
ixmp4.server.rest.base module
- class ixmp4.server.rest.base.BaseModel
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.EnumerationOutput(results: DataFrame | DataFrame | list[EnumeratedT], *, pagination: Pagination, total: int)
Bases:
BaseModel
,Generic
[EnumeratedT
]- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pagination: Pagination
- class ixmp4.server.rest.base.InitKwargs
Bases:
TypedDict
- pagination: Pagination
- class ixmp4.server.rest.base.Pagination(*, limit: Annotated[int, Ge(ge=0), Le(le=10000)] = 5000, offset: Annotated[int, Ge(ge=0)] = 0)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ixmp4.server.rest.base.TabulateVersionArgs(*, transaction__id: int | None = None)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
ixmp4.server.rest.deps module
- async ixmp4.server.rest.deps.do_not_validate_token(authorization: str = Header(None)) dict[str, dict[str, Any]] | None
Override dependency used for skipping authentication while testing.
- async ixmp4.server.rest.deps.get_backend(platform: str = Path(PydanticUndefined), user: User = Depends(get_user)) AsyncGenerator[SqlAlchemyBackend, None]
Returns a platform backend for a platform name as a path parameter. Also checks user access permissions if in managed mode.
- async ixmp4.server.rest.deps.get_managed_backend(platform: str = Path(PydanticUndefined), user: User = Depends(get_user)) AsyncGenerator[SqlAlchemyBackend, None]
Returns a platform backend for a platform name as a path parameter. Also checks user access permissions if in managed mode.
- ixmp4.server.rest.deps.get_test_backend_dependency(backend: SqlAlchemyBackend, auth_params: tuple[User, ManagerConfig, ManagerPlatformInfo]) Callable[[str, User], AsyncGenerator[SqlAlchemyBackend, None]]
- async ixmp4.server.rest.deps.get_toml_backend(platform: str = Path(PydanticUndefined), user: User = Depends(get_user)) AsyncGenerator[SqlAlchemyBackend, None]
ixmp4.server.rest.meta module
- class ixmp4.server.rest.meta.RunMetaEntryInput(*, run__id: int, key: str, value: Annotated[bool, Strict(strict=True)] | Annotated[int, Strict(strict=True)] | Annotated[float, Strict(strict=True)] | Annotated[str, Strict(strict=True)])
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ixmp4.server.rest.meta.bulk_delete(df: DataFrame, backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.meta.bulk_upsert(df: DataFrame, backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.meta.create(runmeta: RunMetaEntryInput, backend: SqlAlchemyBackend = Depends(get_managed_backend)) RunMetaEntry
- ixmp4.server.rest.meta.delete(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.meta.query(filter: RunMetaEntryFilter = Body(None), join_run_index: bool | None = Query(False), table: bool | None = Query(False), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[RunMetaEntry]
- ixmp4.server.rest.meta.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
ixmp4.server.rest.model module
- class ixmp4.server.rest.model.ModelInput(*, name: str)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ixmp4.server.rest.model.create(model: ModelInput, backend: SqlAlchemyBackend = Depends(get_managed_backend)) Model
- ixmp4.server.rest.model.query(filter: ModelFilter = Body(None), table: bool | None = Query(False), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[Model]
- ixmp4.server.rest.model.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
ixmp4.server.rest.region module
- class ixmp4.server.rest.region.RegionInput(*, name: str, hierarchy: str)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ixmp4.server.rest.region.create(region: RegionInput, backend: SqlAlchemyBackend = Depends(get_managed_backend)) Region
- ixmp4.server.rest.region.delete(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.region.query(filter: ~ixmp4.data.db.region.filter.RegionFilter = Body(id=None name=None hierarchy=None id__in=None name__notlike=None name__notilike=None name__ilike=None name__in=None name__like=None hierarchy__notlike=None hierarchy__notilike=None hierarchy__ilike=None hierarchy__in=None hierarchy__like=None iamc=None), table: bool = Query(False), pagination: ~ixmp4.server.rest.base.Pagination = Depends(NoneType), backend: ~ixmp4.data.backend.db.SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[Region]
- ixmp4.server.rest.region.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
ixmp4.server.rest.run module
- class ixmp4.server.rest.run.RevertInput(*, transaction__id: int)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ixmp4.server.rest.run.RunInput(*, model_name: str, scenario_name: str)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ixmp4.server.rest.run.create(run: RunInput, backend: SqlAlchemyBackend = Depends(get_managed_backend)) Run
- ixmp4.server.rest.run.get_by_id(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) Run
- ixmp4.server.rest.run.lock(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) Run
- ixmp4.server.rest.run.query(filter: ~ixmp4.data.db.run.filter.RunFilter = Body(id=None version=None default_only=True is_default=None model=None scenario=None id__in=None version__lt=None version__gte=None version__gt=None version__lte=None version__in=None iamc=None), table: bool | None = Query(False), pagination: ~ixmp4.server.rest.base.Pagination = Depends(NoneType), backend: ~ixmp4.data.backend.db.SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[Run]
- ixmp4.server.rest.run.revert(id: int = Path(PydanticUndefined), input: RevertInput = Body(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.run.set_as_default_version(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.run.tabulate_transactions(pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
- ixmp4.server.rest.run.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
- ixmp4.server.rest.run.unlock(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) Run
- ixmp4.server.rest.run.unset_as_default_version(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
ixmp4.server.rest.scenario module
- class ixmp4.server.rest.scenario.ScenarioInput(*, name: str)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ixmp4.server.rest.scenario.create(scenario: ScenarioInput, backend: SqlAlchemyBackend = Depends(get_managed_backend)) Scenario
- ixmp4.server.rest.scenario.query(filter: ScenarioFilter = Body(None), table: bool | None = Query(False), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[Scenario]
- ixmp4.server.rest.scenario.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
ixmp4.server.rest.unit module
- class ixmp4.server.rest.unit.UnitInput(*, name: str)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ixmp4.server.rest.unit.create(unit: UnitInput, backend: SqlAlchemyBackend = Depends(get_managed_backend)) Unit
- ixmp4.server.rest.unit.delete(id: int = Path(PydanticUndefined), backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.unit.query(filter: UnitFilter = Body(None), table: bool = Query(False), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[Unit]
- ixmp4.server.rest.unit.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
Module contents
- class ixmp4.server.rest.APIInfo(*, name: str, version: str, is_managed: bool, manager_url: None | str, utcnow: datetime)
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].