{-# 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.Proton.Types.ResourceSyncAttempt where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.Proton.Types.ResourceSyncEvent
import Amazonka.Proton.Types.ResourceSyncStatus
import Amazonka.Proton.Types.Revision
data ResourceSyncAttempt = ResourceSyncAttempt'
{
ResourceSyncAttempt -> [ResourceSyncEvent]
events :: [ResourceSyncEvent],
ResourceSyncAttempt -> Revision
initialRevision :: Revision,
ResourceSyncAttempt -> POSIX
startedAt :: Data.POSIX,
ResourceSyncAttempt -> ResourceSyncStatus
status :: ResourceSyncStatus,
ResourceSyncAttempt -> Text
target :: Prelude.Text,
ResourceSyncAttempt -> Revision
targetRevision :: Revision
}
deriving (ResourceSyncAttempt -> ResourceSyncAttempt -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ResourceSyncAttempt -> ResourceSyncAttempt -> Bool
$c/= :: ResourceSyncAttempt -> ResourceSyncAttempt -> Bool
== :: ResourceSyncAttempt -> ResourceSyncAttempt -> Bool
$c== :: ResourceSyncAttempt -> ResourceSyncAttempt -> Bool
Prelude.Eq, ReadPrec [ResourceSyncAttempt]
ReadPrec ResourceSyncAttempt
Int -> ReadS ResourceSyncAttempt
ReadS [ResourceSyncAttempt]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ResourceSyncAttempt]
$creadListPrec :: ReadPrec [ResourceSyncAttempt]
readPrec :: ReadPrec ResourceSyncAttempt
$creadPrec :: ReadPrec ResourceSyncAttempt
readList :: ReadS [ResourceSyncAttempt]
$creadList :: ReadS [ResourceSyncAttempt]
readsPrec :: Int -> ReadS ResourceSyncAttempt
$creadsPrec :: Int -> ReadS ResourceSyncAttempt
Prelude.Read, Int -> ResourceSyncAttempt -> ShowS
[ResourceSyncAttempt] -> ShowS
ResourceSyncAttempt -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ResourceSyncAttempt] -> ShowS
$cshowList :: [ResourceSyncAttempt] -> ShowS
show :: ResourceSyncAttempt -> String
$cshow :: ResourceSyncAttempt -> String
showsPrec :: Int -> ResourceSyncAttempt -> ShowS
$cshowsPrec :: Int -> ResourceSyncAttempt -> ShowS
Prelude.Show, forall x. Rep ResourceSyncAttempt x -> ResourceSyncAttempt
forall x. ResourceSyncAttempt -> Rep ResourceSyncAttempt x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ResourceSyncAttempt x -> ResourceSyncAttempt
$cfrom :: forall x. ResourceSyncAttempt -> Rep ResourceSyncAttempt x
Prelude.Generic)
newResourceSyncAttempt ::
Revision ->
Prelude.UTCTime ->
ResourceSyncStatus ->
Prelude.Text ->
Revision ->
ResourceSyncAttempt
newResourceSyncAttempt :: Revision
-> UTCTime
-> ResourceSyncStatus
-> Text
-> Revision
-> ResourceSyncAttempt
newResourceSyncAttempt
Revision
pInitialRevision_
UTCTime
pStartedAt_
ResourceSyncStatus
pStatus_
Text
pTarget_
Revision
pTargetRevision_ =
ResourceSyncAttempt'
{ $sel:events:ResourceSyncAttempt' :: [ResourceSyncEvent]
events = forall a. Monoid a => a
Prelude.mempty,
$sel:initialRevision:ResourceSyncAttempt' :: Revision
initialRevision = Revision
pInitialRevision_,
$sel:startedAt:ResourceSyncAttempt' :: POSIX
startedAt = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pStartedAt_,
$sel:status:ResourceSyncAttempt' :: ResourceSyncStatus
status = ResourceSyncStatus
pStatus_,
$sel:target:ResourceSyncAttempt' :: Text
target = Text
pTarget_,
$sel:targetRevision:ResourceSyncAttempt' :: Revision
targetRevision = Revision
pTargetRevision_
}
resourceSyncAttempt_events :: Lens.Lens' ResourceSyncAttempt [ResourceSyncEvent]
resourceSyncAttempt_events :: Lens' ResourceSyncAttempt [ResourceSyncEvent]
resourceSyncAttempt_events = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceSyncAttempt' {[ResourceSyncEvent]
events :: [ResourceSyncEvent]
$sel:events:ResourceSyncAttempt' :: ResourceSyncAttempt -> [ResourceSyncEvent]
events} -> [ResourceSyncEvent]
events) (\s :: ResourceSyncAttempt
s@ResourceSyncAttempt' {} [ResourceSyncEvent]
a -> ResourceSyncAttempt
s {$sel:events:ResourceSyncAttempt' :: [ResourceSyncEvent]
events = [ResourceSyncEvent]
a} :: ResourceSyncAttempt) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
resourceSyncAttempt_initialRevision :: Lens.Lens' ResourceSyncAttempt Revision
resourceSyncAttempt_initialRevision :: Lens' ResourceSyncAttempt Revision
resourceSyncAttempt_initialRevision = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceSyncAttempt' {Revision
initialRevision :: Revision
$sel:initialRevision:ResourceSyncAttempt' :: ResourceSyncAttempt -> Revision
initialRevision} -> Revision
initialRevision) (\s :: ResourceSyncAttempt
s@ResourceSyncAttempt' {} Revision
a -> ResourceSyncAttempt
s {$sel:initialRevision:ResourceSyncAttempt' :: Revision
initialRevision = Revision
a} :: ResourceSyncAttempt)
resourceSyncAttempt_startedAt :: Lens.Lens' ResourceSyncAttempt Prelude.UTCTime
resourceSyncAttempt_startedAt :: Lens' ResourceSyncAttempt UTCTime
resourceSyncAttempt_startedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceSyncAttempt' {POSIX
startedAt :: POSIX
$sel:startedAt:ResourceSyncAttempt' :: ResourceSyncAttempt -> POSIX
startedAt} -> POSIX
startedAt) (\s :: ResourceSyncAttempt
s@ResourceSyncAttempt' {} POSIX
a -> ResourceSyncAttempt
s {$sel:startedAt:ResourceSyncAttempt' :: POSIX
startedAt = POSIX
a} :: ResourceSyncAttempt) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
resourceSyncAttempt_status :: Lens.Lens' ResourceSyncAttempt ResourceSyncStatus
resourceSyncAttempt_status :: Lens' ResourceSyncAttempt ResourceSyncStatus
resourceSyncAttempt_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceSyncAttempt' {ResourceSyncStatus
status :: ResourceSyncStatus
$sel:status:ResourceSyncAttempt' :: ResourceSyncAttempt -> ResourceSyncStatus
status} -> ResourceSyncStatus
status) (\s :: ResourceSyncAttempt
s@ResourceSyncAttempt' {} ResourceSyncStatus
a -> ResourceSyncAttempt
s {$sel:status:ResourceSyncAttempt' :: ResourceSyncStatus
status = ResourceSyncStatus
a} :: ResourceSyncAttempt)
resourceSyncAttempt_target :: Lens.Lens' ResourceSyncAttempt Prelude.Text
resourceSyncAttempt_target :: Lens' ResourceSyncAttempt Text
resourceSyncAttempt_target = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceSyncAttempt' {Text
target :: Text
$sel:target:ResourceSyncAttempt' :: ResourceSyncAttempt -> Text
target} -> Text
target) (\s :: ResourceSyncAttempt
s@ResourceSyncAttempt' {} Text
a -> ResourceSyncAttempt
s {$sel:target:ResourceSyncAttempt' :: Text
target = Text
a} :: ResourceSyncAttempt)
resourceSyncAttempt_targetRevision :: Lens.Lens' ResourceSyncAttempt Revision
resourceSyncAttempt_targetRevision :: Lens' ResourceSyncAttempt Revision
resourceSyncAttempt_targetRevision = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ResourceSyncAttempt' {Revision
targetRevision :: Revision
$sel:targetRevision:ResourceSyncAttempt' :: ResourceSyncAttempt -> Revision
targetRevision} -> Revision
targetRevision) (\s :: ResourceSyncAttempt
s@ResourceSyncAttempt' {} Revision
a -> ResourceSyncAttempt
s {$sel:targetRevision:ResourceSyncAttempt' :: Revision
targetRevision = Revision
a} :: ResourceSyncAttempt)
instance Data.FromJSON ResourceSyncAttempt where
parseJSON :: Value -> Parser ResourceSyncAttempt
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"ResourceSyncAttempt"
( \Object
x ->
[ResourceSyncEvent]
-> Revision
-> POSIX
-> ResourceSyncStatus
-> Text
-> Revision
-> ResourceSyncAttempt
ResourceSyncAttempt'
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
"events" 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 a
Data..: Key
"initialRevision")
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
"startedAt")
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
"status")
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
"target")
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
"targetRevision")
)
instance Prelude.Hashable ResourceSyncAttempt where
hashWithSalt :: Int -> ResourceSyncAttempt -> Int
hashWithSalt Int
_salt ResourceSyncAttempt' {[ResourceSyncEvent]
Text
POSIX
ResourceSyncStatus
Revision
targetRevision :: Revision
target :: Text
status :: ResourceSyncStatus
startedAt :: POSIX
initialRevision :: Revision
events :: [ResourceSyncEvent]
$sel:targetRevision:ResourceSyncAttempt' :: ResourceSyncAttempt -> Revision
$sel:target:ResourceSyncAttempt' :: ResourceSyncAttempt -> Text
$sel:status:ResourceSyncAttempt' :: ResourceSyncAttempt -> ResourceSyncStatus
$sel:startedAt:ResourceSyncAttempt' :: ResourceSyncAttempt -> POSIX
$sel:initialRevision:ResourceSyncAttempt' :: ResourceSyncAttempt -> Revision
$sel:events:ResourceSyncAttempt' :: ResourceSyncAttempt -> [ResourceSyncEvent]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [ResourceSyncEvent]
events
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Revision
initialRevision
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
startedAt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ResourceSyncStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
target
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Revision
targetRevision
instance Prelude.NFData ResourceSyncAttempt where
rnf :: ResourceSyncAttempt -> ()
rnf ResourceSyncAttempt' {[ResourceSyncEvent]
Text
POSIX
ResourceSyncStatus
Revision
targetRevision :: Revision
target :: Text
status :: ResourceSyncStatus
startedAt :: POSIX
initialRevision :: Revision
events :: [ResourceSyncEvent]
$sel:targetRevision:ResourceSyncAttempt' :: ResourceSyncAttempt -> Revision
$sel:target:ResourceSyncAttempt' :: ResourceSyncAttempt -> Text
$sel:status:ResourceSyncAttempt' :: ResourceSyncAttempt -> ResourceSyncStatus
$sel:startedAt:ResourceSyncAttempt' :: ResourceSyncAttempt -> POSIX
$sel:initialRevision:ResourceSyncAttempt' :: ResourceSyncAttempt -> Revision
$sel:events:ResourceSyncAttempt' :: ResourceSyncAttempt -> [ResourceSyncEvent]
..} =
forall a. NFData a => a -> ()
Prelude.rnf [ResourceSyncEvent]
events
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Revision
initialRevision
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
startedAt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ResourceSyncStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
target
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Revision
targetRevision