ucsschool.kelvin.client package

Submodules

Module contents

exception ucsschool.kelvin.client.InvalidRequest(msg: Optional[str] = None, status: Optional[int] = None, reason: Optional[str] = None, url: Optional[str] = None)[source]

Bases: KelvinClientError

exception ucsschool.kelvin.client.InvalidToken(msg: Optional[str] = None, status: Optional[int] = None, reason: Optional[str] = None, url: Optional[str] = None)[source]

Bases: KelvinClientError

exception ucsschool.kelvin.client.KelvinClientError(msg: Optional[str] = None, status: Optional[int] = None, reason: Optional[str] = None, url: Optional[str] = None)[source]

Bases: Exception

class ucsschool.kelvin.client.KelvinObject(*, name: Optional[str] = None, ucsschool_roles: Optional[List[str]] = None, udm_properties: Optional[Dict[str, Any]] = None, dn: Optional[str] = None, url: Optional[str] = None, session: Optional[Session] = None, language: Optional[str] = None, **kwargs)[source]

Bases: ABC

as_dict() Dict[str, Any][source]
async delete() None[source]
async reload() KelvinObjectType[source]

Reload properties of object from the Kelvin API.

Raises:

ucsschool.kelvin.client.NoObject – if the object cannot be found

Returns:

self

async save() KelvinObjectType[source]
class ucsschool.kelvin.client.KelvinResource(session: Session, language: Optional[str] = None)[source]

Bases: ABC

class Meta[source]

Bases: object

kelvin_object

alias of KelvinObject

required_get_attrs: Iterable[str] = ('name',)
required_head_attrs: Iterable[str] = ('name',)
required_search_attrs: Iterable[str] = ('school',)
async exists(**kwargs) bool[source]
async get(**kwargs) KelvinObjectType[source]
async get_from_url(url: str) KelvinObjectType[source]
async search(**kwargs) AsyncIterator[KelvinObjectType][source]
exception ucsschool.kelvin.client.NoObject(msg: Optional[str] = None, status: Optional[int] = None, reason: Optional[str] = None, url: Optional[str] = None)[source]

Bases: KelvinClientError

class ucsschool.kelvin.client.PasswordsHashes(user_password: List[str], samba_nt_password: str, krb_5_key: List[str], krb5_key_version_number: int, samba_pwd_last_set: int)[source]

Bases: object

as_dict() Dict[str, Any][source]
as_dict_with_ldap_attr_names() Dict[str, Any][source]

Wrapper around as_dict() that renames the keys to those used in a UCS’ OpenLDAP.

krb5_key_version_number: int
krb_5_key: List[str]
property krb_5_key_as_bytes: List[bytes]

Value of krb_5_key as a list of bytes.

samba_nt_password: str
samba_pwd_last_set: int
user_password: List[str]
class ucsschool.kelvin.client.Role(name: str, *, display_name: Optional[str] = None, url: Optional[str] = None, session: Optional[Session] = None, language: Optional[str] = None, **kwargs)[source]

Bases: KelvinObject

as_dict() Dict[str, Any][source]
async delete() None[source]
async save() RoleResource[source]
class ucsschool.kelvin.client.RoleResource(session: Session, language: Optional[str] = None)[source]

Bases: KelvinResource

class Meta[source]

Bases: object

kelvin_object

alias of Role

required_get_attrs: Iterable[str] = ('name',)
required_head_attrs: Iterable[str] = ('name',)
required_search_attrs: Iterable[str] = ()
class ucsschool.kelvin.client.School(name: str, *, display_name: Optional[str] = None, educational_servers: Optional[List[str]] = None, administrative_servers: Optional[List[str]] = None, class_share_file_server: Optional[str] = None, home_share_file_server: Optional[str] = None, ucsschool_roles: Optional[List[str]] = None, udm_properties: Optional[Dict[str, Any]] = None, dn: Optional[str] = None, url: Optional[str] = None, session: Optional[Session] = None, language: Optional[str] = None, **kwargs)[source]

Bases: KelvinObject

async delete() None[source]
async save() SchoolResource[source]
class ucsschool.kelvin.client.SchoolClass(name: str, school: str, *, description: Optional[str] = None, users: Optional[List[str]] = None, create_share: bool = True, ucsschool_roles: Optional[List[str]] = None, udm_properties: Optional[Dict[str, Any]] = None, dn: Optional[str] = None, url: Optional[str] = None, session: Optional[Session] = None, language: Optional[str] = None, **kwargs)[source]

Bases: KelvinObject

class ucsschool.kelvin.client.SchoolClassResource(session: Session, language: Optional[str] = None)[source]

Bases: KelvinResource

class Meta[source]

Bases: object

kelvin_object

alias of SchoolClass

required_get_attrs: Iterable[str] = ('name', 'school')
required_head_attrs: Iterable[str] = ('name',)
required_save_attrs: Iterable[str] = ('name', 'school')
required_search_attrs: Iterable[str] = ('school',)
class ucsschool.kelvin.client.SchoolResource(session: Session, language: Optional[str] = None)[source]

Bases: KelvinResource

class Meta[source]

Bases: object

kelvin_object

alias of School

required_get_attrs: Iterable[str] = ('name',)
required_head_attrs: Iterable[str] = ('name',)
required_save_attrs: Iterable[str] = ('name',)
required_search_attrs: Iterable[str] = ()
exception ucsschool.kelvin.client.ServerError(msg: Optional[str] = None, status: Optional[int] = None, reason: Optional[str] = None, url: Optional[str] = None)[source]

Bases: KelvinClientError

class ucsschool.kelvin.client.Session(username: str, password: str, host: str, max_client_tasks: int = 10, request_id: Optional[str] = None, request_id_header: str = 'X-Request-ID', language: Optional[str] = None, **kwargs)[source]

Bases: object

property client: AsyncClient
async close() None[source]
async delete(url: str, **kwargs) None[source]
async get(url: str, **kwargs) Union[Dict[str, Any], List[Dict[str, Any]]][source]
async head(url: str, **kwargs) bool[source]
json_headers[source]
open() AsyncClient[source]
async post(url: str, **kwargs) Dict[str, Any][source]
async put(url: str, **kwargs) Dict[str, Any][source]
async request(async_request_method: Any, url: str, return_json: bool = True, **kwargs) Union[str, int, Dict[str, Any]][source]
token[source]
class ucsschool.kelvin.client.User(name: Optional[str] = None, school: Optional[str] = None, *, firstname: Optional[str] = None, lastname: Optional[str] = None, birthday: Optional[date] = None, disabled: bool = False, email: Optional[str] = None, expiration_date: Optional[date] = None, password: Optional[str] = None, record_uid: Optional[str] = None, roles: List[str], schools: List[str], school_classes: Optional[Dict[str, List[str]]] = None, workgroups: Optional[Dict[str, List[str]]] = None, source_uid: Optional[str] = None, udm_properties: Optional[Dict[str, Any]] = None, ucsschool_roles: Optional[List[str]] = None, kelvin_password_hashes: Optional[PasswordsHashes] = None, dn: Optional[str] = None, url: Optional[str] = None, session: Optional[Session] = None, language: Optional[str] = None, **kwargs)[source]

Bases: KelvinObject

class ucsschool.kelvin.client.UserResource(session: Session, language: Optional[str] = None)[source]

Bases: KelvinResource

class Meta[source]

Bases: object

kelvin_object

alias of User

required_get_attrs: Iterable[str] = ('name',)
required_head_attrs: Iterable[str] = ('name',)
required_save_attrs: Iterable[str] = ('school', 'roles')
required_search_attrs: Iterable[str] = ()
class ucsschool.kelvin.client.WorkGroup(name: str, school: str, *, description: Optional[str] = None, users: Optional[List[str]] = None, email: Optional[str] = None, allowed_email_senders_users: List[str] = [], allowed_email_senders_groups: List[str] = [], create_share: bool = True, ucsschool_roles: Optional[List[str]] = None, udm_properties: Optional[Dict[str, Any]] = None, dn: Optional[str] = None, url: Optional[str] = None, session: Optional[Session] = None, language: Optional[str] = None)[source]

Bases: KelvinObject

class ucsschool.kelvin.client.WorkGroupResource(session: Session, language: Optional[str] = None)[source]

Bases: KelvinResource

class Meta[source]

Bases: object

kelvin_object

alias of WorkGroup

required_get_attrs: Iterable[str] = ('name', 'school')
required_head_attrs: Iterable[str] = ('name',)
required_save_attrs: Iterable[str] = ('name', 'school')
required_search_attrs: Iterable[str] = ('school',)