module Lifx.Internal.ProductInfo where
import Lifx.Internal.Product
productInfo :: [VendorInfo]
productInfo :: [VendorInfo]
productInfo =
[ VendorInfo :: Word32 -> Text -> Features -> [ProductInfo] -> VendorInfo
VendorInfo
{ $sel:vid:VendorInfo :: Word32
vid = Word32
1
, $sel:name:VendorInfo :: Text
name = Text
"LIFX"
, $sel:defaults:VendorInfo :: Features
defaults = Features :: Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Maybe (Word16, Word16)
-> Bool
-> Features
Features
{ $sel:hev:Features :: Bool
hev = Bool
False
, $sel:color:Features :: Bool
color = Bool
False
, $sel:chain:Features :: Bool
chain = Bool
False
, $sel:matrix:Features :: Bool
matrix = Bool
False
, $sel:relays:Features :: Bool
relays = Bool
False
, $sel:buttons:Features :: Bool
buttons = Bool
False
, $sel:infrared:Features :: Bool
infrared = Bool
False
, $sel:multizone:Features :: Bool
multizone = Bool
False
, $sel:temperatureRange:Features :: Maybe (Word16, Word16)
temperatureRange = Maybe (Word16, Word16)
forall a. Maybe a
Nothing
, $sel:extendedMultizone:Features :: Bool
extendedMultizone = Bool
False
}
, $sel:products:VendorInfo :: [ProductInfo]
products =
[ ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
1
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Original 1000"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
3
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 650"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
10
, $sel:name:ProductInfo :: Text
name = Text
"LIFX White 800 (Low Voltage)"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2700
, Word16
6500
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
11
, $sel:name:ProductInfo :: Text
name = Text
"LIFX White 800 (High Voltage)"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2700
, Word16
6500
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
15
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 1000"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
18
, $sel:name:ProductInfo :: Text
name = Text
"LIFX White 900 BR30 (Low Voltage)"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
19
, $sel:name:ProductInfo :: Text
name = Text
"LIFX White 900 BR30 (High Voltage)"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
20
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 1000 BR30"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
22
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 1000"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
27
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
28
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
29
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
30
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
31
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Z"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
32
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Z"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
77
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = Maybe (Word16, Word16)
forall a. Maybe a
Nothing
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
}
}
, Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
36
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
37
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
38
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Beam"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
77
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = Maybe (Word16, Word16)
forall a. Maybe a
Nothing
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
}
}
, Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
39
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight White to Warm"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
40
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
43
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
44
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
45
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
46
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
2
, $sel:minor:Upgrade :: Word16
minor = Word16
80
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
49
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini Color"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
50
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White to Warm"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
6500
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
3
, $sel:minor:Upgrade :: Word16
minor = Word16
70
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
51
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2700
, Word16
2700
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
52
, $sel:name:ProductInfo :: Text
name = Text
"LIFX GU10"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
53
, $sel:name:ProductInfo :: Text
name = Text
"LIFX GU10"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
55
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Tile"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
57
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
59
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini Color"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
60
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White to Warm"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
6500
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
[ Upgrade :: Word16 -> Word16 -> PartialFeatures -> Upgrade
Upgrade
{ $sel:major:Upgrade :: Word16
major = Word16
3
, $sel:minor:Upgrade :: Word16
minor = Word16
70
, $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Maybe Bool
forall a. Maybe a
Nothing
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Maybe Bool
forall a. Maybe a
Nothing
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Maybe Bool
forall a. Maybe a
Nothing
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Maybe Bool
forall a. Maybe a
Nothing
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Maybe Bool
forall a. Maybe a
Nothing
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
}
]
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
61
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2700
, Word16
2700
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
62
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
63
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
64
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
65
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
66
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2700
, Word16
2700
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
68
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
70
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = Maybe (Word16, Word16)
forall a. Maybe a
Nothing
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
71
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = Maybe (Word16, Word16)
forall a. Maybe a
Nothing
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
81
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle White to Warm"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2200
, Word16
6500
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
82
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Clear"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2100
, Word16
2100
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
85
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Amber"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2000
, Word16
2000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
87
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2700
, Word16
2700
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
88
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2700
, Word16
2700
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
89
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = Maybe (Word16, Word16)
forall a. Maybe a
Nothing
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
90
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Clean"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
91
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Color"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
92
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Color"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
93
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 US"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
94
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
96
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle White to Warm"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2200
, Word16
6500
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
97
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
98
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
99
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Clean"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
100
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Clear"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2100
, Word16
2100
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
101
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Amber"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
2000
, Word16
2000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
109
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
110
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
111
, $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
112
, $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision Intl"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
113
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini WW US"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
, ProductInfo :: Word32 -> Text -> PartialFeatures -> [Upgrade] -> ProductInfo
ProductInfo
{ $sel:pid:ProductInfo :: Word32
pid = Word32
114
, $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini WW Intl"
, $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures :: Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> Maybe (Word16, Word16)
-> Maybe Bool
-> PartialFeatures
PartialFeatures
{ $sel:hev:PartialFeatures :: Maybe Bool
hev = Maybe Bool
forall a. Maybe a
Nothing
, $sel:color:PartialFeatures :: Maybe Bool
color = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:chain:PartialFeatures :: Maybe Bool
chain = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:matrix:PartialFeatures :: Maybe Bool
matrix = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:relays:PartialFeatures :: Maybe Bool
relays = Maybe Bool
forall a. Maybe a
Nothing
, $sel:buttons:PartialFeatures :: Maybe Bool
buttons = Maybe Bool
forall a. Maybe a
Nothing
, $sel:infrared:PartialFeatures :: Maybe Bool
infrared = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:multizone:PartialFeatures :: Maybe Bool
multizone = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
, $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = (Word16, Word16) -> Maybe (Word16, Word16)
forall a. a -> Maybe a
Just
( Word16
1500
, Word16
9000
)
, $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = Maybe Bool
forall a. Maybe a
Nothing
}
, $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
}
]
}
]