The enums and small value types the service pages take for granted. Raw values are the strings the backend sends and expects; where an enum has a fromValue(...) companion, use it to map a string from a model.
Products and devices
Type
Values (raw)
DeviceProductType / SubscriptionProductType
HOME_SECURITY (HomeSecurity), BABY (Baby), PET (Pet), BIRD (Bird), TRAIL (Trail)
INITIALIZED (Initialized), PROCESSED (Processed), PAIRED (Paired), ACTIVATED (Activated) — the raw value is the type property
PowerSource
Battery, AC, ACAndBattery (ACnBattery)
WakeUpReason
LiveViewStart, ChangeSettings, OtaUpdate
SDCardStatus
Found, Normal, Formatting, NotFound
FirmwareUpdateStatus
NOT_INITIALIZED (NotInitialized, 0), MESSAGE_SENT (MessageSent, 0.1), INITIALIZED (0.2), DOWNLOADING (0.3), DOWNLOADED (0.4), VERIFIED (0.6), FLASHING (0.6), SUCCESS (0.8), REBOOT (0.9), COMPLETE (1.0), ERROR (0) — the second value is the progress fraction; COMPLETE is the terminal state, not SUCCESS
RotationAngle
Angle0 (0), Angle180 (180)
Bitrate
Auto, HD
Device.modelProductType, deviceType, pairingStatus and powerSource are String; map them with the enums above. device.supportsCluster() (true when clusterVersion != "v0") says whether the camera uses clusters.