{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.NetworkManager.Types.Device
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.NetworkManager.Types.Device where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.NetworkManager.Types.AWSLocation
import Amazonka.NetworkManager.Types.DeviceState
import Amazonka.NetworkManager.Types.Location
import Amazonka.NetworkManager.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Describes a device.
--
-- /See:/ 'newDevice' smart constructor.
data Device = Device'
  { -- | The Amazon Web Services location of the device.
    Device -> Maybe AWSLocation
aWSLocation :: Prelude.Maybe AWSLocation,
    -- | The date and time that the site was created.
    Device -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | The description of the device.
    Device -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the device.
    Device -> Maybe Text
deviceArn :: Prelude.Maybe Prelude.Text,
    -- | The ID of the device.
    Device -> Maybe Text
deviceId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the global network.
    Device -> Maybe Text
globalNetworkId :: Prelude.Maybe Prelude.Text,
    -- | The site location.
    Device -> Maybe (Sensitive Location)
location :: Prelude.Maybe (Data.Sensitive Location),
    -- | The device model.
    Device -> Maybe Text
model :: Prelude.Maybe Prelude.Text,
    -- | The device serial number.
    Device -> Maybe Text
serialNumber :: Prelude.Maybe Prelude.Text,
    -- | The site ID.
    Device -> Maybe Text
siteId :: Prelude.Maybe Prelude.Text,
    -- | The device state.
    Device -> Maybe DeviceState
state :: Prelude.Maybe DeviceState,
    -- | The tags for the device.
    Device -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The device type.
    Device -> Maybe Text
type' :: Prelude.Maybe Prelude.Text,
    -- | The device vendor.
    Device -> Maybe Text
vendor :: Prelude.Maybe Prelude.Text
  }
  deriving (Device -> Device -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Device -> Device -> Bool
$c/= :: Device -> Device -> Bool
== :: Device -> Device -> Bool
$c== :: Device -> Device -> Bool
Prelude.Eq, Int -> Device -> ShowS
[Device] -> ShowS
Device -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Device] -> ShowS
$cshowList :: [Device] -> ShowS
show :: Device -> String
$cshow :: Device -> String
showsPrec :: Int -> Device -> ShowS
$cshowsPrec :: Int -> Device -> ShowS
Prelude.Show, forall x. Rep Device x -> Device
forall x. Device -> Rep Device x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Device x -> Device
$cfrom :: forall x. Device -> Rep Device x
Prelude.Generic)

-- |
-- Create a value of 'Device' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'aWSLocation', 'device_aWSLocation' - The Amazon Web Services location of the device.
--
-- 'createdAt', 'device_createdAt' - The date and time that the site was created.
--
-- 'description', 'device_description' - The description of the device.
--
-- 'deviceArn', 'device_deviceArn' - The Amazon Resource Name (ARN) of the device.
--
-- 'deviceId', 'device_deviceId' - The ID of the device.
--
-- 'globalNetworkId', 'device_globalNetworkId' - The ID of the global network.
--
-- 'location', 'device_location' - The site location.
--
-- 'model', 'device_model' - The device model.
--
-- 'serialNumber', 'device_serialNumber' - The device serial number.
--
-- 'siteId', 'device_siteId' - The site ID.
--
-- 'state', 'device_state' - The device state.
--
-- 'tags', 'device_tags' - The tags for the device.
--
-- 'type'', 'device_type' - The device type.
--
-- 'vendor', 'device_vendor' - The device vendor.
newDevice ::
  Device
newDevice :: Device
newDevice =
  Device'
    { $sel:aWSLocation:Device' :: Maybe AWSLocation
aWSLocation = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:Device' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:description:Device' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceArn:Device' :: Maybe Text
deviceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceId:Device' :: Maybe Text
deviceId = forall a. Maybe a
Prelude.Nothing,
      $sel:globalNetworkId:Device' :: Maybe Text
globalNetworkId = forall a. Maybe a
Prelude.Nothing,
      $sel:location:Device' :: Maybe (Sensitive Location)
location = forall a. Maybe a
Prelude.Nothing,
      $sel:model:Device' :: Maybe Text
model = forall a. Maybe a
Prelude.Nothing,
      $sel:serialNumber:Device' :: Maybe Text
serialNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:siteId:Device' :: Maybe Text
siteId = forall a. Maybe a
Prelude.Nothing,
      $sel:state:Device' :: Maybe DeviceState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:Device' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:type':Device' :: Maybe Text
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:vendor:Device' :: Maybe Text
vendor = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Web Services location of the device.
device_aWSLocation :: Lens.Lens' Device (Prelude.Maybe AWSLocation)
device_aWSLocation :: Lens' Device (Maybe AWSLocation)
device_aWSLocation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe AWSLocation
aWSLocation :: Maybe AWSLocation
$sel:aWSLocation:Device' :: Device -> Maybe AWSLocation
aWSLocation} -> Maybe AWSLocation
aWSLocation) (\s :: Device
s@Device' {} Maybe AWSLocation
a -> Device
s {$sel:aWSLocation:Device' :: Maybe AWSLocation
aWSLocation = Maybe AWSLocation
a} :: Device)

-- | The date and time that the site was created.
device_createdAt :: Lens.Lens' Device (Prelude.Maybe Prelude.UTCTime)
device_createdAt :: Lens' Device (Maybe UTCTime)
device_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:Device' :: Device -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: Device
s@Device' {} Maybe POSIX
a -> Device
s {$sel:createdAt:Device' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: Device) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The description of the device.
device_description :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_description :: Lens' Device (Maybe Text)
device_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
description :: Maybe Text
$sel:description:Device' :: Device -> Maybe Text
description} -> Maybe Text
description) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:description:Device' :: Maybe Text
description = Maybe Text
a} :: Device)

-- | The Amazon Resource Name (ARN) of the device.
device_deviceArn :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_deviceArn :: Lens' Device (Maybe Text)
device_deviceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
deviceArn :: Maybe Text
$sel:deviceArn:Device' :: Device -> Maybe Text
deviceArn} -> Maybe Text
deviceArn) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:deviceArn:Device' :: Maybe Text
deviceArn = Maybe Text
a} :: Device)

-- | The ID of the device.
device_deviceId :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_deviceId :: Lens' Device (Maybe Text)
device_deviceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
deviceId :: Maybe Text
$sel:deviceId:Device' :: Device -> Maybe Text
deviceId} -> Maybe Text
deviceId) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:deviceId:Device' :: Maybe Text
deviceId = Maybe Text
a} :: Device)

-- | The ID of the global network.
device_globalNetworkId :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_globalNetworkId :: Lens' Device (Maybe Text)
device_globalNetworkId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
globalNetworkId :: Maybe Text
$sel:globalNetworkId:Device' :: Device -> Maybe Text
globalNetworkId} -> Maybe Text
globalNetworkId) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:globalNetworkId:Device' :: Maybe Text
globalNetworkId = Maybe Text
a} :: Device)

-- | The site location.
device_location :: Lens.Lens' Device (Prelude.Maybe Location)
device_location :: Lens' Device (Maybe Location)
device_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe (Sensitive Location)
location :: Maybe (Sensitive Location)
$sel:location:Device' :: Device -> Maybe (Sensitive Location)
location} -> Maybe (Sensitive Location)
location) (\s :: Device
s@Device' {} Maybe (Sensitive Location)
a -> Device
s {$sel:location:Device' :: Maybe (Sensitive Location)
location = Maybe (Sensitive Location)
a} :: Device) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | The device model.
device_model :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_model :: Lens' Device (Maybe Text)
device_model = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
model :: Maybe Text
$sel:model:Device' :: Device -> Maybe Text
model} -> Maybe Text
model) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:model:Device' :: Maybe Text
model = Maybe Text
a} :: Device)

-- | The device serial number.
device_serialNumber :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_serialNumber :: Lens' Device (Maybe Text)
device_serialNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
serialNumber :: Maybe Text
$sel:serialNumber:Device' :: Device -> Maybe Text
serialNumber} -> Maybe Text
serialNumber) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:serialNumber:Device' :: Maybe Text
serialNumber = Maybe Text
a} :: Device)

-- | The site ID.
device_siteId :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_siteId :: Lens' Device (Maybe Text)
device_siteId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
siteId :: Maybe Text
$sel:siteId:Device' :: Device -> Maybe Text
siteId} -> Maybe Text
siteId) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:siteId:Device' :: Maybe Text
siteId = Maybe Text
a} :: Device)

-- | The device state.
device_state :: Lens.Lens' Device (Prelude.Maybe DeviceState)
device_state :: Lens' Device (Maybe DeviceState)
device_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe DeviceState
state :: Maybe DeviceState
$sel:state:Device' :: Device -> Maybe DeviceState
state} -> Maybe DeviceState
state) (\s :: Device
s@Device' {} Maybe DeviceState
a -> Device
s {$sel:state:Device' :: Maybe DeviceState
state = Maybe DeviceState
a} :: Device)

-- | The tags for the device.
device_tags :: Lens.Lens' Device (Prelude.Maybe [Tag])
device_tags :: Lens' Device (Maybe [Tag])
device_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:Device' :: Device -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: Device
s@Device' {} Maybe [Tag]
a -> Device
s {$sel:tags:Device' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: Device) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The device type.
device_type :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_type :: Lens' Device (Maybe Text)
device_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
type' :: Maybe Text
$sel:type':Device' :: Device -> Maybe Text
type'} -> Maybe Text
type') (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:type':Device' :: Maybe Text
type' = Maybe Text
a} :: Device)

-- | The device vendor.
device_vendor :: Lens.Lens' Device (Prelude.Maybe Prelude.Text)
device_vendor :: Lens' Device (Maybe Text)
device_vendor = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Device' {Maybe Text
vendor :: Maybe Text
$sel:vendor:Device' :: Device -> Maybe Text
vendor} -> Maybe Text
vendor) (\s :: Device
s@Device' {} Maybe Text
a -> Device
s {$sel:vendor:Device' :: Maybe Text
vendor = Maybe Text
a} :: Device)

instance Data.FromJSON Device where
  parseJSON :: Value -> Parser Device
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Device"
      ( \Object
x ->
          Maybe AWSLocation
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe (Sensitive Location)
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe DeviceState
-> Maybe [Tag]
-> Maybe Text
-> Maybe Text
-> Device
Device'
            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
"AWSLocation")
            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
"CreatedAt")
            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
"Description")
            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
"DeviceArn")
            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
"DeviceId")
            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
"GlobalNetworkId")
            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
"Location")
            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
"Model")
            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
"SerialNumber")
            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
"SiteId")
            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
"State")
            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
"Tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            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
"Type")
            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
"Vendor")
      )

instance Prelude.Hashable Device where
  hashWithSalt :: Int -> Device -> Int
hashWithSalt Int
_salt Device' {Maybe [Tag]
Maybe Text
Maybe (Sensitive Location)
Maybe POSIX
Maybe AWSLocation
Maybe DeviceState
vendor :: Maybe Text
type' :: Maybe Text
tags :: Maybe [Tag]
state :: Maybe DeviceState
siteId :: Maybe Text
serialNumber :: Maybe Text
model :: Maybe Text
location :: Maybe (Sensitive Location)
globalNetworkId :: Maybe Text
deviceId :: Maybe Text
deviceArn :: Maybe Text
description :: Maybe Text
createdAt :: Maybe POSIX
aWSLocation :: Maybe AWSLocation
$sel:vendor:Device' :: Device -> Maybe Text
$sel:type':Device' :: Device -> Maybe Text
$sel:tags:Device' :: Device -> Maybe [Tag]
$sel:state:Device' :: Device -> Maybe DeviceState
$sel:siteId:Device' :: Device -> Maybe Text
$sel:serialNumber:Device' :: Device -> Maybe Text
$sel:model:Device' :: Device -> Maybe Text
$sel:location:Device' :: Device -> Maybe (Sensitive Location)
$sel:globalNetworkId:Device' :: Device -> Maybe Text
$sel:deviceId:Device' :: Device -> Maybe Text
$sel:deviceArn:Device' :: Device -> Maybe Text
$sel:description:Device' :: Device -> Maybe Text
$sel:createdAt:Device' :: Device -> Maybe POSIX
$sel:aWSLocation:Device' :: Device -> Maybe AWSLocation
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AWSLocation
aWSLocation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
deviceArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
deviceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
globalNetworkId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Location)
location
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
model
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serialNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
siteId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DeviceState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
type'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vendor

instance Prelude.NFData Device where
  rnf :: Device -> ()
rnf Device' {Maybe [Tag]
Maybe Text
Maybe (Sensitive Location)
Maybe POSIX
Maybe AWSLocation
Maybe DeviceState
vendor :: Maybe Text
type' :: Maybe Text
tags :: Maybe [Tag]
state :: Maybe DeviceState
siteId :: Maybe Text
serialNumber :: Maybe Text
model :: Maybe Text
location :: Maybe (Sensitive Location)
globalNetworkId :: Maybe Text
deviceId :: Maybe Text
deviceArn :: Maybe Text
description :: Maybe Text
createdAt :: Maybe POSIX
aWSLocation :: Maybe AWSLocation
$sel:vendor:Device' :: Device -> Maybe Text
$sel:type':Device' :: Device -> Maybe Text
$sel:tags:Device' :: Device -> Maybe [Tag]
$sel:state:Device' :: Device -> Maybe DeviceState
$sel:siteId:Device' :: Device -> Maybe Text
$sel:serialNumber:Device' :: Device -> Maybe Text
$sel:model:Device' :: Device -> Maybe Text
$sel:location:Device' :: Device -> Maybe (Sensitive Location)
$sel:globalNetworkId:Device' :: Device -> Maybe Text
$sel:deviceId:Device' :: Device -> Maybe Text
$sel:deviceArn:Device' :: Device -> Maybe Text
$sel:description:Device' :: Device -> Maybe Text
$sel:createdAt:Device' :: Device -> Maybe POSIX
$sel:aWSLocation:Device' :: Device -> Maybe AWSLocation
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AWSLocation
aWSLocation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
deviceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
deviceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
globalNetworkId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Location)
location
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
model
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serialNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
siteId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeviceState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vendor