{-# 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.LifeCycleLastCutover 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.LifeCycleLastCutoverFinalized
import Amazonka.MGN.Types.LifeCycleLastCutoverInitiated
import Amazonka.MGN.Types.LifeCycleLastCutoverReverted
import qualified Amazonka.Prelude as Prelude
data LifeCycleLastCutover = LifeCycleLastCutover'
{
LifeCycleLastCutover -> Maybe LifeCycleLastCutoverFinalized
finalized :: Prelude.Maybe LifeCycleLastCutoverFinalized,
LifeCycleLastCutover -> Maybe LifeCycleLastCutoverInitiated
initiated :: Prelude.Maybe LifeCycleLastCutoverInitiated,
LifeCycleLastCutover -> Maybe LifeCycleLastCutoverReverted
reverted :: Prelude.Maybe LifeCycleLastCutoverReverted
}
deriving (LifeCycleLastCutover -> LifeCycleLastCutover -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LifeCycleLastCutover -> LifeCycleLastCutover -> Bool
$c/= :: LifeCycleLastCutover -> LifeCycleLastCutover -> Bool
== :: LifeCycleLastCutover -> LifeCycleLastCutover -> Bool
$c== :: LifeCycleLastCutover -> LifeCycleLastCutover -> Bool
Prelude.Eq, ReadPrec [LifeCycleLastCutover]
ReadPrec LifeCycleLastCutover
Int -> ReadS LifeCycleLastCutover
ReadS [LifeCycleLastCutover]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LifeCycleLastCutover]
$creadListPrec :: ReadPrec [LifeCycleLastCutover]
readPrec :: ReadPrec LifeCycleLastCutover
$creadPrec :: ReadPrec LifeCycleLastCutover
readList :: ReadS [LifeCycleLastCutover]
$creadList :: ReadS [LifeCycleLastCutover]
readsPrec :: Int -> ReadS LifeCycleLastCutover
$creadsPrec :: Int -> ReadS LifeCycleLastCutover
Prelude.Read, Int -> LifeCycleLastCutover -> ShowS
[LifeCycleLastCutover] -> ShowS
LifeCycleLastCutover -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LifeCycleLastCutover] -> ShowS
$cshowList :: [LifeCycleLastCutover] -> ShowS
show :: LifeCycleLastCutover -> String
$cshow :: LifeCycleLastCutover -> String
showsPrec :: Int -> LifeCycleLastCutover -> ShowS
$cshowsPrec :: Int -> LifeCycleLastCutover -> ShowS
Prelude.Show, forall x. Rep LifeCycleLastCutover x -> LifeCycleLastCutover
forall x. LifeCycleLastCutover -> Rep LifeCycleLastCutover x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LifeCycleLastCutover x -> LifeCycleLastCutover
$cfrom :: forall x. LifeCycleLastCutover -> Rep LifeCycleLastCutover x
Prelude.Generic)
newLifeCycleLastCutover ::
LifeCycleLastCutover
newLifeCycleLastCutover :: LifeCycleLastCutover
newLifeCycleLastCutover =
LifeCycleLastCutover'
{ $sel:finalized:LifeCycleLastCutover' :: Maybe LifeCycleLastCutoverFinalized
finalized = forall a. Maybe a
Prelude.Nothing,
$sel:initiated:LifeCycleLastCutover' :: Maybe LifeCycleLastCutoverInitiated
initiated = forall a. Maybe a
Prelude.Nothing,
$sel:reverted:LifeCycleLastCutover' :: Maybe LifeCycleLastCutoverReverted
reverted = forall a. Maybe a
Prelude.Nothing
}
lifeCycleLastCutover_finalized :: Lens.Lens' LifeCycleLastCutover (Prelude.Maybe LifeCycleLastCutoverFinalized)
lifeCycleLastCutover_finalized :: Lens' LifeCycleLastCutover (Maybe LifeCycleLastCutoverFinalized)
lifeCycleLastCutover_finalized = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycleLastCutover' {Maybe LifeCycleLastCutoverFinalized
finalized :: Maybe LifeCycleLastCutoverFinalized
$sel:finalized:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverFinalized
finalized} -> Maybe LifeCycleLastCutoverFinalized
finalized) (\s :: LifeCycleLastCutover
s@LifeCycleLastCutover' {} Maybe LifeCycleLastCutoverFinalized
a -> LifeCycleLastCutover
s {$sel:finalized:LifeCycleLastCutover' :: Maybe LifeCycleLastCutoverFinalized
finalized = Maybe LifeCycleLastCutoverFinalized
a} :: LifeCycleLastCutover)
lifeCycleLastCutover_initiated :: Lens.Lens' LifeCycleLastCutover (Prelude.Maybe LifeCycleLastCutoverInitiated)
lifeCycleLastCutover_initiated :: Lens' LifeCycleLastCutover (Maybe LifeCycleLastCutoverInitiated)
lifeCycleLastCutover_initiated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycleLastCutover' {Maybe LifeCycleLastCutoverInitiated
initiated :: Maybe LifeCycleLastCutoverInitiated
$sel:initiated:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverInitiated
initiated} -> Maybe LifeCycleLastCutoverInitiated
initiated) (\s :: LifeCycleLastCutover
s@LifeCycleLastCutover' {} Maybe LifeCycleLastCutoverInitiated
a -> LifeCycleLastCutover
s {$sel:initiated:LifeCycleLastCutover' :: Maybe LifeCycleLastCutoverInitiated
initiated = Maybe LifeCycleLastCutoverInitiated
a} :: LifeCycleLastCutover)
lifeCycleLastCutover_reverted :: Lens.Lens' LifeCycleLastCutover (Prelude.Maybe LifeCycleLastCutoverReverted)
lifeCycleLastCutover_reverted :: Lens' LifeCycleLastCutover (Maybe LifeCycleLastCutoverReverted)
lifeCycleLastCutover_reverted = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LifeCycleLastCutover' {Maybe LifeCycleLastCutoverReverted
reverted :: Maybe LifeCycleLastCutoverReverted
$sel:reverted:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverReverted
reverted} -> Maybe LifeCycleLastCutoverReverted
reverted) (\s :: LifeCycleLastCutover
s@LifeCycleLastCutover' {} Maybe LifeCycleLastCutoverReverted
a -> LifeCycleLastCutover
s {$sel:reverted:LifeCycleLastCutover' :: Maybe LifeCycleLastCutoverReverted
reverted = Maybe LifeCycleLastCutoverReverted
a} :: LifeCycleLastCutover)
instance Data.FromJSON LifeCycleLastCutover where
parseJSON :: Value -> Parser LifeCycleLastCutover
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"LifeCycleLastCutover"
( \Object
x ->
Maybe LifeCycleLastCutoverFinalized
-> Maybe LifeCycleLastCutoverInitiated
-> Maybe LifeCycleLastCutoverReverted
-> LifeCycleLastCutover
LifeCycleLastCutover'
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
"finalized")
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
"initiated")
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
"reverted")
)
instance Prelude.Hashable LifeCycleLastCutover where
hashWithSalt :: Int -> LifeCycleLastCutover -> Int
hashWithSalt Int
_salt LifeCycleLastCutover' {Maybe LifeCycleLastCutoverFinalized
Maybe LifeCycleLastCutoverInitiated
Maybe LifeCycleLastCutoverReverted
reverted :: Maybe LifeCycleLastCutoverReverted
initiated :: Maybe LifeCycleLastCutoverInitiated
finalized :: Maybe LifeCycleLastCutoverFinalized
$sel:reverted:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverReverted
$sel:initiated:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverInitiated
$sel:finalized:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverFinalized
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifeCycleLastCutoverFinalized
finalized
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifeCycleLastCutoverInitiated
initiated
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifeCycleLastCutoverReverted
reverted
instance Prelude.NFData LifeCycleLastCutover where
rnf :: LifeCycleLastCutover -> ()
rnf LifeCycleLastCutover' {Maybe LifeCycleLastCutoverFinalized
Maybe LifeCycleLastCutoverInitiated
Maybe LifeCycleLastCutoverReverted
reverted :: Maybe LifeCycleLastCutoverReverted
initiated :: Maybe LifeCycleLastCutoverInitiated
finalized :: Maybe LifeCycleLastCutoverFinalized
$sel:reverted:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverReverted
$sel:initiated:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverInitiated
$sel:finalized:LifeCycleLastCutover' :: LifeCycleLastCutover -> Maybe LifeCycleLastCutoverFinalized
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe LifeCycleLastCutoverFinalized
finalized
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifeCycleLastCutoverInitiated
initiated
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifeCycleLastCutoverReverted
reverted