{-# 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.IoTRoboRunner.Types.Worker where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTRoboRunner.Types.Orientation
import Amazonka.IoTRoboRunner.Types.PositionCoordinates
import Amazonka.IoTRoboRunner.Types.VendorProperties
import qualified Amazonka.Prelude as Prelude
data Worker = Worker'
{ Worker -> Maybe Text
additionalFixedProperties :: Prelude.Maybe Prelude.Text,
Worker -> Maybe Text
additionalTransientProperties :: Prelude.Maybe Prelude.Text,
Worker -> Maybe Orientation
orientation :: Prelude.Maybe Orientation,
Worker -> Maybe PositionCoordinates
position :: Prelude.Maybe PositionCoordinates,
Worker -> Maybe VendorProperties
vendorProperties :: Prelude.Maybe VendorProperties,
Worker -> Text
arn :: Prelude.Text,
Worker -> Text
id :: Prelude.Text,
Worker -> Text
fleet :: Prelude.Text,
Worker -> POSIX
createdAt :: Data.POSIX,
Worker -> POSIX
updatedAt :: Data.POSIX,
Worker -> Text
name :: Prelude.Text,
Worker -> Text
site :: Prelude.Text
}
deriving (Worker -> Worker -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Worker -> Worker -> Bool
$c/= :: Worker -> Worker -> Bool
== :: Worker -> Worker -> Bool
$c== :: Worker -> Worker -> Bool
Prelude.Eq, ReadPrec [Worker]
ReadPrec Worker
Int -> ReadS Worker
ReadS [Worker]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Worker]
$creadListPrec :: ReadPrec [Worker]
readPrec :: ReadPrec Worker
$creadPrec :: ReadPrec Worker
readList :: ReadS [Worker]
$creadList :: ReadS [Worker]
readsPrec :: Int -> ReadS Worker
$creadsPrec :: Int -> ReadS Worker
Prelude.Read, Int -> Worker -> ShowS
[Worker] -> ShowS
Worker -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Worker] -> ShowS
$cshowList :: [Worker] -> ShowS
show :: Worker -> String
$cshow :: Worker -> String
showsPrec :: Int -> Worker -> ShowS
$cshowsPrec :: Int -> Worker -> ShowS
Prelude.Show, forall x. Rep Worker x -> Worker
forall x. Worker -> Rep Worker x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Worker x -> Worker
$cfrom :: forall x. Worker -> Rep Worker x
Prelude.Generic)
newWorker ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.UTCTime ->
Prelude.UTCTime ->
Prelude.Text ->
Prelude.Text ->
Worker
newWorker :: Text
-> Text -> Text -> UTCTime -> UTCTime -> Text -> Text -> Worker
newWorker
Text
pArn_
Text
pId_
Text
pFleet_
UTCTime
pCreatedAt_
UTCTime
pUpdatedAt_
Text
pName_
Text
pSite_ =
Worker'
{ $sel:additionalFixedProperties:Worker' :: Maybe Text
additionalFixedProperties =
forall a. Maybe a
Prelude.Nothing,
$sel:additionalTransientProperties:Worker' :: Maybe Text
additionalTransientProperties = forall a. Maybe a
Prelude.Nothing,
$sel:orientation:Worker' :: Maybe Orientation
orientation = forall a. Maybe a
Prelude.Nothing,
$sel:position:Worker' :: Maybe PositionCoordinates
position = forall a. Maybe a
Prelude.Nothing,
$sel:vendorProperties:Worker' :: Maybe VendorProperties
vendorProperties = forall a. Maybe a
Prelude.Nothing,
$sel:arn:Worker' :: Text
arn = Text
pArn_,
$sel:id:Worker' :: Text
id = Text
pId_,
$sel:fleet:Worker' :: Text
fleet = Text
pFleet_,
$sel:createdAt:Worker' :: POSIX
createdAt = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreatedAt_,
$sel:updatedAt:Worker' :: POSIX
updatedAt = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pUpdatedAt_,
$sel:name:Worker' :: Text
name = Text
pName_,
$sel:site:Worker' :: Text
site = Text
pSite_
}
worker_additionalFixedProperties :: Lens.Lens' Worker (Prelude.Maybe Prelude.Text)
worker_additionalFixedProperties :: Lens' Worker (Maybe Text)
worker_additionalFixedProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Maybe Text
additionalFixedProperties :: Maybe Text
$sel:additionalFixedProperties:Worker' :: Worker -> Maybe Text
additionalFixedProperties} -> Maybe Text
additionalFixedProperties) (\s :: Worker
s@Worker' {} Maybe Text
a -> Worker
s {$sel:additionalFixedProperties:Worker' :: Maybe Text
additionalFixedProperties = Maybe Text
a} :: Worker)
worker_additionalTransientProperties :: Lens.Lens' Worker (Prelude.Maybe Prelude.Text)
worker_additionalTransientProperties :: Lens' Worker (Maybe Text)
worker_additionalTransientProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Maybe Text
additionalTransientProperties :: Maybe Text
$sel:additionalTransientProperties:Worker' :: Worker -> Maybe Text
additionalTransientProperties} -> Maybe Text
additionalTransientProperties) (\s :: Worker
s@Worker' {} Maybe Text
a -> Worker
s {$sel:additionalTransientProperties:Worker' :: Maybe Text
additionalTransientProperties = Maybe Text
a} :: Worker)
worker_orientation :: Lens.Lens' Worker (Prelude.Maybe Orientation)
worker_orientation :: Lens' Worker (Maybe Orientation)
worker_orientation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Maybe Orientation
orientation :: Maybe Orientation
$sel:orientation:Worker' :: Worker -> Maybe Orientation
orientation} -> Maybe Orientation
orientation) (\s :: Worker
s@Worker' {} Maybe Orientation
a -> Worker
s {$sel:orientation:Worker' :: Maybe Orientation
orientation = Maybe Orientation
a} :: Worker)
worker_position :: Lens.Lens' Worker (Prelude.Maybe PositionCoordinates)
worker_position :: Lens' Worker (Maybe PositionCoordinates)
worker_position = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Maybe PositionCoordinates
position :: Maybe PositionCoordinates
$sel:position:Worker' :: Worker -> Maybe PositionCoordinates
position} -> Maybe PositionCoordinates
position) (\s :: Worker
s@Worker' {} Maybe PositionCoordinates
a -> Worker
s {$sel:position:Worker' :: Maybe PositionCoordinates
position = Maybe PositionCoordinates
a} :: Worker)
worker_vendorProperties :: Lens.Lens' Worker (Prelude.Maybe VendorProperties)
worker_vendorProperties :: Lens' Worker (Maybe VendorProperties)
worker_vendorProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Maybe VendorProperties
vendorProperties :: Maybe VendorProperties
$sel:vendorProperties:Worker' :: Worker -> Maybe VendorProperties
vendorProperties} -> Maybe VendorProperties
vendorProperties) (\s :: Worker
s@Worker' {} Maybe VendorProperties
a -> Worker
s {$sel:vendorProperties:Worker' :: Maybe VendorProperties
vendorProperties = Maybe VendorProperties
a} :: Worker)
worker_arn :: Lens.Lens' Worker Prelude.Text
worker_arn :: Lens' Worker Text
worker_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Text
arn :: Text
$sel:arn:Worker' :: Worker -> Text
arn} -> Text
arn) (\s :: Worker
s@Worker' {} Text
a -> Worker
s {$sel:arn:Worker' :: Text
arn = Text
a} :: Worker)
worker_id :: Lens.Lens' Worker Prelude.Text
worker_id :: Lens' Worker Text
worker_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Text
id :: Text
$sel:id:Worker' :: Worker -> Text
id} -> Text
id) (\s :: Worker
s@Worker' {} Text
a -> Worker
s {$sel:id:Worker' :: Text
id = Text
a} :: Worker)
worker_fleet :: Lens.Lens' Worker Prelude.Text
worker_fleet :: Lens' Worker Text
worker_fleet = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Text
fleet :: Text
$sel:fleet:Worker' :: Worker -> Text
fleet} -> Text
fleet) (\s :: Worker
s@Worker' {} Text
a -> Worker
s {$sel:fleet:Worker' :: Text
fleet = Text
a} :: Worker)
worker_createdAt :: Lens.Lens' Worker Prelude.UTCTime
worker_createdAt :: Lens' Worker UTCTime
worker_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {POSIX
createdAt :: POSIX
$sel:createdAt:Worker' :: Worker -> POSIX
createdAt} -> POSIX
createdAt) (\s :: Worker
s@Worker' {} POSIX
a -> Worker
s {$sel:createdAt:Worker' :: POSIX
createdAt = POSIX
a} :: Worker) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
worker_updatedAt :: Lens.Lens' Worker Prelude.UTCTime
worker_updatedAt :: Lens' Worker UTCTime
worker_updatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {POSIX
updatedAt :: POSIX
$sel:updatedAt:Worker' :: Worker -> POSIX
updatedAt} -> POSIX
updatedAt) (\s :: Worker
s@Worker' {} POSIX
a -> Worker
s {$sel:updatedAt:Worker' :: POSIX
updatedAt = POSIX
a} :: Worker) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
worker_name :: Lens.Lens' Worker Prelude.Text
worker_name :: Lens' Worker Text
worker_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Text
name :: Text
$sel:name:Worker' :: Worker -> Text
name} -> Text
name) (\s :: Worker
s@Worker' {} Text
a -> Worker
s {$sel:name:Worker' :: Text
name = Text
a} :: Worker)
worker_site :: Lens.Lens' Worker Prelude.Text
worker_site :: Lens' Worker Text
worker_site = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Worker' {Text
site :: Text
$sel:site:Worker' :: Worker -> Text
site} -> Text
site) (\s :: Worker
s@Worker' {} Text
a -> Worker
s {$sel:site:Worker' :: Text
site = Text
a} :: Worker)
instance Data.FromJSON Worker where
parseJSON :: Value -> Parser Worker
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Worker"
( \Object
x ->
Maybe Text
-> Maybe Text
-> Maybe Orientation
-> Maybe PositionCoordinates
-> Maybe VendorProperties
-> Text
-> Text
-> Text
-> POSIX
-> POSIX
-> Text
-> Text
-> Worker
Worker'
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
"additionalFixedProperties")
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
"additionalTransientProperties")
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
"orientation")
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
"position")
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
"vendorProperties")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"id")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"fleet")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser 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 a
Data..: Key
"updatedAt")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"site")
)
instance Prelude.Hashable Worker where
hashWithSalt :: Int -> Worker -> Int
hashWithSalt Int
_salt Worker' {Maybe Text
Maybe Orientation
Maybe PositionCoordinates
Maybe VendorProperties
Text
POSIX
site :: Text
name :: Text
updatedAt :: POSIX
createdAt :: POSIX
fleet :: Text
id :: Text
arn :: Text
vendorProperties :: Maybe VendorProperties
position :: Maybe PositionCoordinates
orientation :: Maybe Orientation
additionalTransientProperties :: Maybe Text
additionalFixedProperties :: Maybe Text
$sel:site:Worker' :: Worker -> Text
$sel:name:Worker' :: Worker -> Text
$sel:updatedAt:Worker' :: Worker -> POSIX
$sel:createdAt:Worker' :: Worker -> POSIX
$sel:fleet:Worker' :: Worker -> Text
$sel:id:Worker' :: Worker -> Text
$sel:arn:Worker' :: Worker -> Text
$sel:vendorProperties:Worker' :: Worker -> Maybe VendorProperties
$sel:position:Worker' :: Worker -> Maybe PositionCoordinates
$sel:orientation:Worker' :: Worker -> Maybe Orientation
$sel:additionalTransientProperties:Worker' :: Worker -> Maybe Text
$sel:additionalFixedProperties:Worker' :: Worker -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
additionalFixedProperties
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
additionalTransientProperties
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Orientation
orientation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PositionCoordinates
position
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VendorProperties
vendorProperties
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
fleet
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
createdAt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
updatedAt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
site
instance Prelude.NFData Worker where
rnf :: Worker -> ()
rnf Worker' {Maybe Text
Maybe Orientation
Maybe PositionCoordinates
Maybe VendorProperties
Text
POSIX
site :: Text
name :: Text
updatedAt :: POSIX
createdAt :: POSIX
fleet :: Text
id :: Text
arn :: Text
vendorProperties :: Maybe VendorProperties
position :: Maybe PositionCoordinates
orientation :: Maybe Orientation
additionalTransientProperties :: Maybe Text
additionalFixedProperties :: Maybe Text
$sel:site:Worker' :: Worker -> Text
$sel:name:Worker' :: Worker -> Text
$sel:updatedAt:Worker' :: Worker -> POSIX
$sel:createdAt:Worker' :: Worker -> POSIX
$sel:fleet:Worker' :: Worker -> Text
$sel:id:Worker' :: Worker -> Text
$sel:arn:Worker' :: Worker -> Text
$sel:vendorProperties:Worker' :: Worker -> Maybe VendorProperties
$sel:position:Worker' :: Worker -> Maybe PositionCoordinates
$sel:orientation:Worker' :: Worker -> Maybe Orientation
$sel:additionalTransientProperties:Worker' :: Worker -> Maybe Text
$sel:additionalFixedProperties:Worker' :: Worker -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
additionalFixedProperties
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
additionalTransientProperties
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Orientation
orientation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PositionCoordinates
position
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VendorProperties
vendorProperties
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
fleet
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
createdAt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
updatedAt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
site