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: Exception

Generic HTTP Error.

exception univention.admin.rest.client.BadRequest(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 400 Bad Request error.

exception univention.admin.rest.client.Unauthorized(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 401 Unauthorized error.

exception univention.admin.rest.client.Forbidden(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 403 Forbidden error.

exception univention.admin.rest.client.NotFound(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 404 Not Found error.

exception univention.admin.rest.client.PreconditionFailed(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 412 Precondition Failed error.

exception univention.admin.rest.client.UnprocessableEntity(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 422 Unprocessable Entity error.

exception univention.admin.rest.client.ServerError(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 500 Internal Server error.

exception univention.admin.rest.client.ServiceUnavailable(code: int, message: str, response: Response | None, error_details: dict | None = None)[source]#

Bases: HTTPError

A 503 Service Unavailable error.

exception univention.admin.rest.client.ConnectionError[source]#

Bases: Exception

A HTTP Connection error.

exception univention.admin.rest.client.UnexpectedResponse[source]#

Bases: ConnectionError

A unexpected response payload error (e.g. not JSON).

class univention.admin.rest.client.Response(response: Response, data: Any, uri: str)[source]#

Bases: object

Response wrapper.

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: object

A session holding credentials and language settings for a client.

create_session() Session[source]#
get_method(method: str) Callable[..., requests.Response][source]#
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]#
eval_response(response: Response, expect_json: bool = False) Any[source]#
get_relations(entry: dict, relation: str, name: str | None = None, template: dict[str, Any] | None = None) Iterator[dict[str, str]][source]#
get_relation(entry: dict, relation: str, name: str | None = None, template: dict[str, Any] | None = None) dict[str, str][source]#
resolve_relations(entry: dict, relation: str, name: str | None = None, template: dict[str, Any] | None = None) Iterator[Any][source]#
resolve_relation(entry: dict, relation: str, name: str | None = None, template: dict[str, Any] | None = None) Any[source]#
class univention.admin.rest.client.Client(client: Session)[source]#

Bases: object

Abstract client base class.

class univention.admin.rest.client.UDM(uri: str, username: str, password: str, *args: Any, **kwargs: Any)[source]#

Bases: Client

Univention Directory Manager client.

classmethod http(uri: str, username: str, password: str) Self[source]#
classmethod bearer(uri: str, bearer_token: str) Self[source]#
load() None[source]#
reload() None[source]#
get_ldap_base() str | None[source]#
modules(name: str | None = None) Iterator[Module][source]#
version(api_version: str) Self[source]#
obj_by_dn(dn: str) Object[source]#
obj_by_uuid(uuid: str) Object[source]#
get(name: str) Module | None[source]#
get_object(object_type: str, dn: str) Object | None[source]#
class univention.admin.rest.client.Module(udm: UDM, uri: str, name: str, title: str, *args: Any, **kwargs: Any)[source]#

Bases: Client

A UDM module representation.

load_relations() None[source]#
new(position: str | None = None, superordinate: str | None = None, template: dict[str, Any] | None = None) Object[source]#
get(dn: str, properties: list[str] | None = None) Object | None[source]#
get_by_entry_uuid(uuid: str, properties: list[str] | None = None) Object | None[source]#
get_by_id(dn: str, properties: list[str] | None = None) Object | None[source]#
search(filter: dict[str, str] | str | bytes | 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]#
get_layout() Any | None[source]#
get_properties() Any | None[source]#
get_property_choices(property: str) Any | None[source]#
policy_result(policy_module: str, position: str, policy: str | None = None) dict[source]#
get_report_types() list[str][source]#
create_report(report_type: str, object_dns: list[str]) Any[source]#
class univention.admin.rest.client.ShallowObject(udm: UDM, dn: str | None, uri: str, *args: Any, **kwargs: Any)[source]#

Bases: Client

A reference to an UDM object, which is not recevied from server yet.

open() Object[source]#
class univention.admin.rest.client.References(obj: Object | None = None)[source]#

Bases: object

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: Client

A UDM object with related references.

property module#
property object_type: str#
property dn: str | None#
property properties#
property options: dict#
property policies: dict#
property superordinate: str | None#
property position: str | None#
property uri: str | None#
classmethod from_response(udm: UDM, response: Response) Object[source]#
classmethod from_data(udm: UDM, entry: dict, headers: Mapping[str, str] | None = None) Object[source]#
reload() None[source]#
save(reload: bool = True) Response[source]#
json_patch(patch: dict, reload: bool = True) Response[source]#
delete(remove_referring: bool = False) bytes[source]#
move(position: str, reload: bool = True) None[source]#
generate_service_specific_password(service: str) Any | None[source]#
get_layout() Any | None[source]#
get_properties() Any | None[source]#
get_property_choices(property: str) Any | None[source]#
policy_result(policy_module: str, policy: str | None = None) dict[source]#
class univention.admin.rest.client.PatchDocument[source]#

Bases: object

application/json-patch+json representation

add(path_segments, value)[source]#
replace(path_segments, value)[source]#
remove(path_segments, value)[source]#
move(path_segments, from_segments)[source]#
copy(path_segments, from_segments)[source]#
test(path_segments, value)[source]#
expand_path(path_segments)[source]#