lce_service.device_class_api.update_classes module

lce_service.device_class_api.update_classes.delete_device_class(dbc: silo_cursor, device_class_id: int, user: User) → Dict[str, Any]

Delete a device class that nothing references.

A device class cannot be deleted while devices belong to it or Dynamic Applications are aligned to it. Its assigned and fallback icons are unassigned, the platform’s cache of device classes is invalidated, and the revision of its PowerPack is incremented when it is installed.

Parameters:
  • dbc – A silo_cursor instance, within the transaction of the request.

  • device_class_id – The id of the device class.

  • user – The user making the request.

Returns:

The identifier (id, guid and name) of the deleted device class.

Raises:
lce_service.device_class_api.update_classes.get_device_classes_from_payload(dbc: silo_cursor, payload: List[Dict[str, Any]] | Dict[str, Any]) → List[DeviceClass]

Convert a request payload into device class models to create or update.

A device class is keyed by its GUID: a GUID that exists updates that device class with the provided fields, a new GUID creates a device class with it, and no GUID creates a device class with a generated one. The read-only fields of a device class (see DEVICE_CLASS_READ_ONLY_FIELDS) are discarded, so a retrieved device class is a valid payload.

Parameters:
  • dbc – A silo_cursor instance used to retrieve the stored device classes and resolve categories.

  • payload – A single device class dictionary, a list of them, or a dictionary with a “device_classes” list.

Returns:

The device class models, in payload order.

Raises:
  • ValueError – Raised when the payload format is invalid or provides a GUID twice.

  • InvalidResourceError – Raised when a device class fails validation.

  • DatabaseExecutionError – Raised when a database query fails.

lce_service.device_class_api.update_classes.update_device_classes(dbc: silo_cursor, device_classes: List[DeviceClass], user: User) → List[Dict[str, Any]]

Create or update device classes.

Every device class is validated before any is written, with the categories, tiers and PowerPacks they reference looked up once for all of them. Each change is recorded in the audit log, and the revision of each PowerPack whose device classes change is incremented.

Parameters:
  • dbc – A silo_cursor instance, within the transaction of the request.

  • device_classes – The device class models, see get_device_classes_from_payload.

  • user – The user making the request.

Returns:

The identifier (id, guid, name and new) of each device class, in payload order.

Raises: