univention.admin.rest.client package#
Sample Client for the UDM REST API.
>>> from univention.admin.rest.client import UDM
>>> uri = 'http://localhost/univention/udm/'
>>> udm = UDM.http(uri, 'Administrator', 'univention')
>>> module = udm.get('users/user')
>>> print('Found {}'.format(module))
>>> obj = next(module.search())
>>> if obj:
>>> obj = obj.open()
>>> print('Object {}'.format(obj))
- exception univention.admin.rest.client.HTTPError(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
ExceptionGeneric HTTP Error.
- errors = {400: <class 'univention.admin.rest.client.BadRequest'>, 401: <class 'univention.admin.rest.client.Unauthorized'>, 403: <class 'univention.admin.rest.client.Forbidden'>, 404: <class 'univention.admin.rest.client.NotFound'>, 412: <class 'univention.admin.rest.client.PreconditionFailed'>, 422: <class 'univention.admin.rest.client.UnprocessableEntity'>, 429: <class 'univention.admin.rest.client.TooManyRequests'>, 500: <class 'univention.admin.rest.client.ServerError'>, 503: <class 'univention.admin.rest.client.ServiceUnavailable'>}#
- code#
- response#
- error_details#
- exception univention.admin.rest.client.BadRequest(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 400 Bad Request error.
- code#
- error_details#
- response#
- exception univention.admin.rest.client.Unauthorized(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 401 Unauthorized error.
- code#
- error_details#
- response#
- exception univention.admin.rest.client.Forbidden(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 403 Forbidden error.
- code#
- error_details#
- response#
- exception univention.admin.rest.client.NotFound(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 404 Not Found error.
- code#
- error_details#
- response#
- exception univention.admin.rest.client.PreconditionFailed(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 412 Precondition Failed error.
- code#
- error_details#
- response#
- exception univention.admin.rest.client.UnprocessableEntity(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 422 Unprocessable Entity error.
- code#
- error_details#
- response#
- exception univention.admin.rest.client.TooManyRequests(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 429 Too Many Requests error.
- code#
- error_details#
- response#
- exception univention.admin.rest.client.ServerError(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#
Bases:
HTTPErrorA 500 Internal Server error.
- code#
- error_details#
- response#
Bases:
HTTPErrorA 503 Service Unavailable error.
- exception univention.admin.rest.client.ConnectionError[source]#
Bases:
ExceptionA HTTP Connection error.
- exception univention.admin.rest.client.UnexpectedResponse[source]#
Bases:
ConnectionErrorA unexpected response payload error (e.g. not JSON).
- class univention.admin.rest.client.Response(response: Response, data: Any, uri: str)[source]#
Bases:
objectResponse wrapper.
- response#
- data#
- uri#
- class univention.admin.rest.client.Session(credentials: UDM, language: str = 'en-US', reconnect: bool = True, user_agent: str = 'univention.lib/1.0', enable_caching: bool = False)[source]#
Bases:
objectA session holding credentials and language settings for a client.
- language#
- credentials#
- reconnect#
- user_agent#
- enable_caching#
- default_headers#
- session#
- request(method: str, uri: str, data: dict | None = None, expect_json: bool = False, **headers: str) Any[source]#
- make_request(method: str, uri: str, data: dict | None = None, expect_json: bool = False, allow_redirects: bool = True, custom_redirect_handling: bool = False, **headers: str) Response[source]#
- get_relations(entry: dict, relation: str, name: str | None = None, template: dict[str, Any] | None = None) Iterator[dict[str, str]][source]#
- has_relation(entry: dict, relation: str, name: str | None = None, template: dict[str, Any] | None = None) bool[source]#
- get_relation(entry: dict, relation: str, name: str | None = None, template: dict[str, Any] | None = None) dict[str, str][source]#
- class univention.admin.rest.client.Client(client: Session)[source]#
Bases:
objectAbstract client base class.
- client#
- class univention.admin.rest.client.UDM(uri: str, username: str, password: str, *args: Any, **kwargs: Any)[source]#
Bases:
ClientUnivention Directory Manager client.
- uri#
- username#
- password#
- bearer_token#
- class univention.admin.rest.client.Module(udm: UDM, uri: str, name: str, title: str, *args: Any, **kwargs: Any)[source]#
Bases:
ClientA UDM module representation.
- udm#
- uri#
- username#
- password#
- name#
- title#
- new(position: str | None = None, superordinate: str | None = None, template: dict[str, Any] | None = None) Object[source]#
- search(filter: dict[str, str] | str | None = None, position: str | None = None, scope: str | None = 'sub', hidden: bool = False, superordinate: str | None = None, opened: bool = False, properties: list[str] | None = None) Iterator[Any][source]#
Search objects.
- search_paginated(filter: dict[str, str] | str | None = None, position: str | None = None, scope: str | None = 'sub', hidden: bool = False, superordinate: str | None = None, opened: bool = False, properties: list[str] | None = None, page_size: int = 50, sort_by: str | list[str] | None = None, reverse: bool = False, pagination: bool = False) Iterator[Any][source]#
Yield all search results by following server-provided page links.
- search_page(filter: dict[str, str] | str | None = None, position: str | None = None, scope: str | None = 'sub', hidden: bool = False, superordinate: str | None = None, opened: bool = False, properties: list[str] | None = None, page_size: int | None = 50, page: int = 1, sort_by: str | list[str] | None = None, reverse: bool = False, pagination: bool = False) _SearchPage[source]#
Return one paginated search result page including navigation metadata.
- class univention.admin.rest.client.ShallowObject(udm: UDM, dn: str | None, uri: str, *args: Any, **kwargs: Any)[source]#
Bases:
ClientA reference to an UDM object, which is not recevied from server yet.
- dn#
- udm#
- uri#
- class univention.admin.rest.client.References(obj: Object | None = None)[source]#
Bases:
object- obj#
- udm#
- class univention.admin.rest.client.Object(udm: UDM, representation: dict, etag: str | None = None, last_modified: str | None = None, *args: Any, **kwargs: Any)[source]#
Bases:
ClientA UDM object with related references.
- property module#
- property properties#
- classmethod from_data(udm: UDM, entry: dict, headers: Mapping[str, str] | None = None) Object[source]#
- udm#
- representation#
- hal#
- etag#
- last_modified#