{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.IoTWireless.Types.SidewalkDeviceMetadata where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTWireless.Types.BatteryLevel
import Amazonka.IoTWireless.Types.DeviceState
import Amazonka.IoTWireless.Types.Event
import qualified Amazonka.Prelude as Prelude
data SidewalkDeviceMetadata = SidewalkDeviceMetadata'
{
SidewalkDeviceMetadata -> Maybe BatteryLevel
batteryLevel :: Prelude.Maybe BatteryLevel,
SidewalkDeviceMetadata -> Maybe DeviceState
deviceState :: Prelude.Maybe DeviceState,
SidewalkDeviceMetadata -> Maybe Event
event :: Prelude.Maybe Event,
:: Prelude.Maybe Prelude.Int
}
deriving (SidewalkDeviceMetadata -> SidewalkDeviceMetadata -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SidewalkDeviceMetadata -> SidewalkDeviceMetadata -> Bool
$c/= :: SidewalkDeviceMetadata -> SidewalkDeviceMetadata -> Bool
== :: SidewalkDeviceMetadata -> SidewalkDeviceMetadata -> Bool
$c== :: SidewalkDeviceMetadata -> SidewalkDeviceMetadata -> Bool
Prelude.Eq, ReadPrec [SidewalkDeviceMetadata]
ReadPrec SidewalkDeviceMetadata
Int -> ReadS SidewalkDeviceMetadata
ReadS [SidewalkDeviceMetadata]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SidewalkDeviceMetadata]
$creadListPrec :: ReadPrec [SidewalkDeviceMetadata]
readPrec :: ReadPrec SidewalkDeviceMetadata
$creadPrec :: ReadPrec SidewalkDeviceMetadata
readList :: ReadS [SidewalkDeviceMetadata]
$creadList :: ReadS [SidewalkDeviceMetadata]
readsPrec :: Int -> ReadS SidewalkDeviceMetadata
$creadsPrec :: Int -> ReadS SidewalkDeviceMetadata
Prelude.Read, Int -> SidewalkDeviceMetadata -> ShowS
[SidewalkDeviceMetadata] -> ShowS
SidewalkDeviceMetadata -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SidewalkDeviceMetadata] -> ShowS
$cshowList :: [SidewalkDeviceMetadata] -> ShowS
show :: SidewalkDeviceMetadata -> String
$cshow :: SidewalkDeviceMetadata -> String
showsPrec :: Int -> SidewalkDeviceMetadata -> ShowS
$cshowsPrec :: Int -> SidewalkDeviceMetadata -> ShowS
Prelude.Show, forall x. Rep SidewalkDeviceMetadata x -> SidewalkDeviceMetadata
forall x. SidewalkDeviceMetadata -> Rep SidewalkDeviceMetadata x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SidewalkDeviceMetadata x -> SidewalkDeviceMetadata
$cfrom :: forall x. SidewalkDeviceMetadata -> Rep SidewalkDeviceMetadata x
Prelude.Generic)
newSidewalkDeviceMetadata ::
SidewalkDeviceMetadata
newSidewalkDeviceMetadata :: SidewalkDeviceMetadata
newSidewalkDeviceMetadata =
SidewalkDeviceMetadata'
{ $sel:batteryLevel:SidewalkDeviceMetadata' :: Maybe BatteryLevel
batteryLevel =
forall a. Maybe a
Prelude.Nothing,
$sel:deviceState:SidewalkDeviceMetadata' :: Maybe DeviceState
deviceState = forall a. Maybe a
Prelude.Nothing,
$sel:event:SidewalkDeviceMetadata' :: Maybe Event
event = forall a. Maybe a
Prelude.Nothing,
$sel:rssi:SidewalkDeviceMetadata' :: Maybe Int
rssi = forall a. Maybe a
Prelude.Nothing
}
sidewalkDeviceMetadata_batteryLevel :: Lens.Lens' SidewalkDeviceMetadata (Prelude.Maybe BatteryLevel)
sidewalkDeviceMetadata_batteryLevel :: Lens' SidewalkDeviceMetadata (Maybe BatteryLevel)
sidewalkDeviceMetadata_batteryLevel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SidewalkDeviceMetadata' {Maybe BatteryLevel
batteryLevel :: Maybe BatteryLevel
$sel:batteryLevel:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe BatteryLevel
batteryLevel} -> Maybe BatteryLevel
batteryLevel) (\s :: SidewalkDeviceMetadata
s@SidewalkDeviceMetadata' {} Maybe BatteryLevel
a -> SidewalkDeviceMetadata
s {$sel:batteryLevel:SidewalkDeviceMetadata' :: Maybe BatteryLevel
batteryLevel = Maybe BatteryLevel
a} :: SidewalkDeviceMetadata)
sidewalkDeviceMetadata_deviceState :: Lens.Lens' SidewalkDeviceMetadata (Prelude.Maybe DeviceState)
sidewalkDeviceMetadata_deviceState :: Lens' SidewalkDeviceMetadata (Maybe DeviceState)
sidewalkDeviceMetadata_deviceState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SidewalkDeviceMetadata' {Maybe DeviceState
deviceState :: Maybe DeviceState
$sel:deviceState:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe DeviceState
deviceState} -> Maybe DeviceState
deviceState) (\s :: SidewalkDeviceMetadata
s@SidewalkDeviceMetadata' {} Maybe DeviceState
a -> SidewalkDeviceMetadata
s {$sel:deviceState:SidewalkDeviceMetadata' :: Maybe DeviceState
deviceState = Maybe DeviceState
a} :: SidewalkDeviceMetadata)
sidewalkDeviceMetadata_event :: Lens.Lens' SidewalkDeviceMetadata (Prelude.Maybe Event)
sidewalkDeviceMetadata_event :: Lens' SidewalkDeviceMetadata (Maybe Event)
sidewalkDeviceMetadata_event = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SidewalkDeviceMetadata' {Maybe Event
event :: Maybe Event
$sel:event:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe Event
event} -> Maybe Event
event) (\s :: SidewalkDeviceMetadata
s@SidewalkDeviceMetadata' {} Maybe Event
a -> SidewalkDeviceMetadata
s {$sel:event:SidewalkDeviceMetadata' :: Maybe Event
event = Maybe Event
a} :: SidewalkDeviceMetadata)
sidewalkDeviceMetadata_rssi :: Lens.Lens' SidewalkDeviceMetadata (Prelude.Maybe Prelude.Int)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SidewalkDeviceMetadata' {Maybe Int
rssi :: Maybe Int
$sel:rssi:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe Int
rssi} -> Maybe Int
rssi) (\s :: SidewalkDeviceMetadata
s@SidewalkDeviceMetadata' {} Maybe Int
a -> SidewalkDeviceMetadata
s {$sel:rssi:SidewalkDeviceMetadata' :: Maybe Int
rssi = Maybe Int
a} :: SidewalkDeviceMetadata)
instance Data.FromJSON SidewalkDeviceMetadata where
parseJSON :: Value -> Parser SidewalkDeviceMetadata
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"SidewalkDeviceMetadata"
( \Object
x ->
Maybe BatteryLevel
-> Maybe DeviceState
-> Maybe Event
-> Maybe Int
-> SidewalkDeviceMetadata
SidewalkDeviceMetadata'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"BatteryLevel")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DeviceState")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Event")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Rssi")
)
instance Prelude.Hashable SidewalkDeviceMetadata where
hashWithSalt :: Int -> SidewalkDeviceMetadata -> Int
hashWithSalt Int
_salt SidewalkDeviceMetadata' {Maybe Int
Maybe BatteryLevel
Maybe DeviceState
Maybe Event
rssi :: Maybe Int
event :: Maybe Event
deviceState :: Maybe DeviceState
batteryLevel :: Maybe BatteryLevel
$sel:rssi:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe Int
$sel:event:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe Event
$sel:deviceState:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe DeviceState
$sel:batteryLevel:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe BatteryLevel
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BatteryLevel
batteryLevel
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DeviceState
deviceState
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Event
event
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
rssi
instance Prelude.NFData SidewalkDeviceMetadata where
rnf :: SidewalkDeviceMetadata -> ()
rnf SidewalkDeviceMetadata' {Maybe Int
Maybe BatteryLevel
Maybe DeviceState
Maybe Event
rssi :: Maybe Int
event :: Maybe Event
deviceState :: Maybe DeviceState
batteryLevel :: Maybe BatteryLevel
$sel:rssi:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe Int
$sel:event:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe Event
$sel:deviceState:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe DeviceState
$sel:batteryLevel:SidewalkDeviceMetadata' :: SidewalkDeviceMetadata -> Maybe BatteryLevel
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe BatteryLevel
batteryLevel
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeviceState
deviceState
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Event
event
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
rssi