{-# 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.MGN.Types.LifeCycle where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MGN.Types.LifeCycleLastCutover
import Amazonka.MGN.Types.LifeCycleLastTest
import Amazonka.MGN.Types.LifeCycleState
import qualified Amazonka.Prelude as Prelude
data LifeCycle = LifeCycle'
{
LifeCycle -> Maybe Text
addedToServiceDateTime :: Prelude.Maybe Prelude.Text,
LifeCycle -> Maybe Text
elapsedReplicationDuration :: Prelude.Maybe Prelude.Text,
LifeCycle -> Maybe Text
firstByteDateTime :: Prelude.Maybe Prelude.Text,
LifeCycle -> Maybe LifeCycleLastCutover
lastCutover :: Prelude.Maybe LifeCycleLastCutover,
LifeCycle -> Maybe Text
lastSeenByServiceDateTime :: Prelude.Maybe Prelude.Text,
LifeCycle -> Maybe LifeCycleLastTest
lastTest :: Prelude.Maybe LifeCycleLastTest,
LifeCycle -> Maybe LifeCycleState
state :: Prelude.Maybe LifeCycleState
}
deriving (LifeCycle -> LifeCycle -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LifeCycle -> LifeCycle -> Bool
$c/= :: LifeCycle -> LifeCycle -> Bool
== :: LifeCycle -> LifeCycle -> Bool
$c== :: LifeCycle -> LifeCycle -> Bool
Prelude.Eq, ReadPrec [LifeCycle]
ReadPrec LifeCycle
Int -> ReadS LifeCycle
ReadS [LifeCycle]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LifeCycle]
$creadListPrec :: ReadPrec [LifeCycle]
readPrec :: ReadPrec LifeCycle
$creadPrec :: ReadPrec LifeCycle
readList :: ReadS [LifeCycle]
$creadList :: ReadS [LifeCycle]
readsPrec :: Int -> ReadS LifeCycle
$creadsPrec :: Int -> ReadS LifeCycle
Prelude.Read, Int -> LifeCycle -> ShowS
[LifeCycle] -> ShowS
LifeCycle -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LifeCycle] -> ShowS
$cshowList :: [LifeCycle] -> ShowS
show :: LifeCycle -> String
$cshow :: LifeCycle -> String
showsPrec :: Int -> LifeCycle -> ShowS
$cshowsPrec :: Int -> LifeCycle -> ShowS
Prelude.Show, forall x. Rep LifeCycle x -> LifeCycle
forall x. LifeCycle -> Rep LifeCycle x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LifeCycle x -> LifeCycle
$cfrom :: forall x. LifeCycle -> Rep LifeCycle x
Prelude.Generic)
newLifeCycle ::
LifeCycle
newLifeCycle :: LifeCycle
newLifeCycle =
LifeCycle'
{ $sel:addedToServiceDateTime:LifeCycle' :: Maybe Text
addedToServiceDateTime =
forall a. Maybe a
Prelude.Nothing,
$sel:elapsedReplicationDuration:LifeCycle' :: Maybe Text
elapsedReplicationDuration = forall a. Maybe a
Prelude.Nothing,
$sel:firstByteDateTime:LifeCycle' :: Maybe Text
firstByteDateTime = forall a. Maybe a
Prelude.Nothing,
$sel:lastCutover:LifeCycle' :: Maybe LifeCycleLastCutover
lastCutover = forall a. Maybe a
Prelude.Nothing,
$sel:lastSeenByServiceDateTime:LifeCycle' :: Maybe Text
lastSeenByServiceDateTime = forall a. Maybe a
Prelude.Nothing,
$sel:lastTest:LifeCycle' :: Maybe LifeCycleLastTest
lastTest = forall a. Maybe a
Prelude.Nothing,
$sel:state:LifeCycle' :: Maybe LifeCycleState
state = forall a. Maybe a
Prelude.Nothing
}
lifeCycle_addedToServiceDateTime :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)
lifeCycle_addedToServiceDateTime :: Lens' LifeCycle (Maybe Text)
lifeCycle_addedToServiceDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycle' {Maybe Text
addedToServiceDateTime :: Maybe Text
$sel:addedToServiceDateTime:LifeCycle' :: LifeCycle -> Maybe Text
addedToServiceDateTime} -> Maybe Text
addedToServiceDateTime) (\s :: LifeCycle
s@LifeCycle' {} Maybe Text
a -> LifeCycle
s {$sel:addedToServiceDateTime:LifeCycle' :: Maybe Text
addedToServiceDateTime = Maybe Text
a} :: LifeCycle)
lifeCycle_elapsedReplicationDuration :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)
lifeCycle_elapsedReplicationDuration :: Lens' LifeCycle (Maybe Text)
lifeCycle_elapsedReplicationDuration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycle' {Maybe Text
elapsedReplicationDuration :: Maybe Text
$sel:elapsedReplicationDuration:LifeCycle' :: LifeCycle -> Maybe Text
elapsedReplicationDuration} -> Maybe Text
elapsedReplicationDuration) (\s :: LifeCycle
s@LifeCycle' {} Maybe Text
a -> LifeCycle
s {$sel:elapsedReplicationDuration:LifeCycle' :: Maybe Text
elapsedReplicationDuration = Maybe Text
a} :: LifeCycle)
lifeCycle_firstByteDateTime :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)
lifeCycle_firstByteDateTime :: Lens' LifeCycle (Maybe Text)
lifeCycle_firstByteDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycle' {Maybe Text
firstByteDateTime :: Maybe Text
$sel:firstByteDateTime:LifeCycle' :: LifeCycle -> Maybe Text
firstByteDateTime} -> Maybe Text
firstByteDateTime) (\s :: LifeCycle
s@LifeCycle' {} Maybe Text
a -> LifeCycle
s {$sel:firstByteDateTime:LifeCycle' :: Maybe Text
firstByteDateTime = Maybe Text
a} :: LifeCycle)
lifeCycle_lastCutover :: Lens.Lens' LifeCycle (Prelude.Maybe LifeCycleLastCutover)
lifeCycle_lastCutover :: Lens' LifeCycle (Maybe LifeCycleLastCutover)
lifeCycle_lastCutover = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycle' {Maybe LifeCycleLastCutover
lastCutover :: Maybe LifeCycleLastCutover
$sel:lastCutover:LifeCycle' :: LifeCycle -> Maybe LifeCycleLastCutover
lastCutover} -> Maybe LifeCycleLastCutover
lastCutover) (\s :: LifeCycle
s@LifeCycle' {} Maybe LifeCycleLastCutover
a -> LifeCycle
s {$sel:lastCutover:LifeCycle' :: Maybe LifeCycleLastCutover
lastCutover = Maybe LifeCycleLastCutover
a} :: LifeCycle)
lifeCycle_lastSeenByServiceDateTime :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)
lifeCycle_lastSeenByServiceDateTime :: Lens' LifeCycle (Maybe Text)
lifeCycle_lastSeenByServiceDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycle' {Maybe Text
lastSeenByServiceDateTime :: Maybe Text
$sel:lastSeenByServiceDateTime:LifeCycle' :: LifeCycle -> Maybe Text
lastSeenByServiceDateTime} -> Maybe Text
lastSeenByServiceDateTime) (\s :: LifeCycle
s@LifeCycle' {} Maybe Text
a -> LifeCycle
s {$sel:lastSeenByServiceDateTime:LifeCycle' :: Maybe Text
lastSeenByServiceDateTime = Maybe Text
a} :: LifeCycle)
lifeCycle_lastTest :: Lens.Lens' LifeCycle (Prelude.Maybe LifeCycleLastTest)
lifeCycle_lastTest :: Lens' LifeCycle (Maybe LifeCycleLastTest)
lifeCycle_lastTest = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycle' {Maybe LifeCycleLastTest
lastTest :: Maybe LifeCycleLastTest
$sel:lastTest:LifeCycle' :: LifeCycle -> Maybe LifeCycleLastTest
lastTest} -> Maybe LifeCycleLastTest
lastTest) (\s :: LifeCycle
s@LifeCycle' {} Maybe LifeCycleLastTest
a -> LifeCycle
s {$sel:lastTest:LifeCycle' :: Maybe LifeCycleLastTest
lastTest = Maybe LifeCycleLastTest
a} :: LifeCycle)
lifeCycle_state :: Lens.Lens' LifeCycle (Prelude.Maybe LifeCycleState)
lifeCycle_state :: Lens' LifeCycle (Maybe LifeCycleState)
lifeCycle_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycle' {Maybe LifeCycleState
state :: Maybe LifeCycleState
$sel:state:LifeCycle' :: LifeCycle -> Maybe LifeCycleState
state} -> Maybe LifeCycleState
state) (\s :: LifeCycle
s@LifeCycle' {} Maybe LifeCycleState
a -> LifeCycle
s {$sel:state:LifeCycle' :: Maybe LifeCycleState
state = Maybe LifeCycleState
a} :: LifeCycle)
instance Data.FromJSON LifeCycle where
parseJSON :: Value -> Parser LifeCycle
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"LifeCycle"
( \Object
x ->
Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe LifeCycleLastCutover
-> Maybe Text
-> Maybe LifeCycleLastTest
-> Maybe LifeCycleState
-> LifeCycle
LifeCycle'
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
"addedToServiceDateTime")
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
"elapsedReplicationDuration")
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
"firstByteDateTime")
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
"lastCutover")
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
"lastSeenByServiceDateTime")
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
"lastTest")
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")
)
instance Prelude.Hashable LifeCycle where
hashWithSalt :: Int -> LifeCycle -> Int
hashWithSalt Int
_salt LifeCycle' {Maybe Text
Maybe LifeCycleLastCutover
Maybe LifeCycleLastTest
Maybe LifeCycleState
state :: Maybe LifeCycleState
lastTest :: Maybe LifeCycleLastTest
lastSeenByServiceDateTime :: Maybe Text
lastCutover :: Maybe LifeCycleLastCutover
firstByteDateTime :: Maybe Text
elapsedReplicationDuration :: Maybe Text
addedToServiceDateTime :: Maybe Text
$sel:state:LifeCycle' :: LifeCycle -> Maybe LifeCycleState
$sel:lastTest:LifeCycle' :: LifeCycle -> Maybe LifeCycleLastTest
$sel:lastSeenByServiceDateTime:LifeCycle' :: LifeCycle -> Maybe Text
$sel:lastCutover:LifeCycle' :: LifeCycle -> Maybe LifeCycleLastCutover
$sel:firstByteDateTime:LifeCycle' :: LifeCycle -> Maybe Text
$sel:elapsedReplicationDuration:LifeCycle' :: LifeCycle -> Maybe Text
$sel:addedToServiceDateTime:LifeCycle' :: LifeCycle -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
addedToServiceDateTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
elapsedReplicationDuration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
firstByteDateTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifeCycleLastCutover
lastCutover
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lastSeenByServiceDateTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifeCycleLastTest
lastTest
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifeCycleState
state
instance Prelude.NFData LifeCycle where
rnf :: LifeCycle -> ()
rnf LifeCycle' {Maybe Text
Maybe LifeCycleLastCutover
Maybe LifeCycleLastTest
Maybe LifeCycleState
state :: Maybe LifeCycleState
lastTest :: Maybe LifeCycleLastTest
lastSeenByServiceDateTime :: Maybe Text
lastCutover :: Maybe LifeCycleLastCutover
firstByteDateTime :: Maybe Text
elapsedReplicationDuration :: Maybe Text
addedToServiceDateTime :: Maybe Text
$sel:state:LifeCycle' :: LifeCycle -> Maybe LifeCycleState
$sel:lastTest:LifeCycle' :: LifeCycle -> Maybe LifeCycleLastTest
$sel:lastSeenByServiceDateTime:LifeCycle' :: LifeCycle -> Maybe Text
$sel:lastCutover:LifeCycle' :: LifeCycle -> Maybe LifeCycleLastCutover
$sel:firstByteDateTime:LifeCycle' :: LifeCycle -> Maybe Text
$sel:elapsedReplicationDuration:LifeCycle' :: LifeCycle -> Maybe Text
$sel:addedToServiceDateTime:LifeCycle' :: LifeCycle -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
addedToServiceDateTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
elapsedReplicationDuration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
firstByteDateTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifeCycleLastCutover
lastCutover
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastSeenByServiceDateTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifeCycleLastTest
lastTest
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifeCycleState
state