{-# 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.EMR.Types.InstanceStatus where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EMR.Types.InstanceState
import Amazonka.EMR.Types.InstanceStateChangeReason
import Amazonka.EMR.Types.InstanceTimeline
import qualified Amazonka.Prelude as Prelude
data InstanceStatus = InstanceStatus'
{
InstanceStatus -> Maybe InstanceState
state :: Prelude.Maybe InstanceState,
InstanceStatus -> Maybe InstanceStateChangeReason
stateChangeReason :: Prelude.Maybe InstanceStateChangeReason,
InstanceStatus -> Maybe InstanceTimeline
timeline :: Prelude.Maybe InstanceTimeline
}
deriving (InstanceStatus -> InstanceStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstanceStatus -> InstanceStatus -> Bool
$c/= :: InstanceStatus -> InstanceStatus -> Bool
== :: InstanceStatus -> InstanceStatus -> Bool
$c== :: InstanceStatus -> InstanceStatus -> Bool
Prelude.Eq, ReadPrec [InstanceStatus]
ReadPrec InstanceStatus
Int -> ReadS InstanceStatus
ReadS [InstanceStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InstanceStatus]
$creadListPrec :: ReadPrec [InstanceStatus]
readPrec :: ReadPrec InstanceStatus
$creadPrec :: ReadPrec InstanceStatus
readList :: ReadS [InstanceStatus]
$creadList :: ReadS [InstanceStatus]
readsPrec :: Int -> ReadS InstanceStatus
$creadsPrec :: Int -> ReadS InstanceStatus
Prelude.Read, Int -> InstanceStatus -> ShowS
[InstanceStatus] -> ShowS
InstanceStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstanceStatus] -> ShowS
$cshowList :: [InstanceStatus] -> ShowS
show :: InstanceStatus -> String
$cshow :: InstanceStatus -> String
showsPrec :: Int -> InstanceStatus -> ShowS
$cshowsPrec :: Int -> InstanceStatus -> ShowS
Prelude.Show, forall x. Rep InstanceStatus x -> InstanceStatus
forall x. InstanceStatus -> Rep InstanceStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InstanceStatus x -> InstanceStatus
$cfrom :: forall x. InstanceStatus -> Rep InstanceStatus x
Prelude.Generic)
newInstanceStatus ::
InstanceStatus
newInstanceStatus :: InstanceStatus
newInstanceStatus =
InstanceStatus'
{ $sel:state:InstanceStatus' :: Maybe InstanceState
state = forall a. Maybe a
Prelude.Nothing,
$sel:stateChangeReason:InstanceStatus' :: Maybe InstanceStateChangeReason
stateChangeReason = forall a. Maybe a
Prelude.Nothing,
$sel:timeline:InstanceStatus' :: Maybe InstanceTimeline
timeline = forall a. Maybe a
Prelude.Nothing
}
instanceStatus_state :: Lens.Lens' InstanceStatus (Prelude.Maybe InstanceState)
instanceStatus_state :: Lens' InstanceStatus (Maybe InstanceState)
instanceStatus_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe InstanceState
state :: Maybe InstanceState
$sel:state:InstanceStatus' :: InstanceStatus -> Maybe InstanceState
state} -> Maybe InstanceState
state) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe InstanceState
a -> InstanceStatus
s {$sel:state:InstanceStatus' :: Maybe InstanceState
state = Maybe InstanceState
a} :: InstanceStatus)
instanceStatus_stateChangeReason :: Lens.Lens' InstanceStatus (Prelude.Maybe InstanceStateChangeReason)
instanceStatus_stateChangeReason :: Lens' InstanceStatus (Maybe InstanceStateChangeReason)
instanceStatus_stateChangeReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe InstanceStateChangeReason
stateChangeReason :: Maybe InstanceStateChangeReason
$sel:stateChangeReason:InstanceStatus' :: InstanceStatus -> Maybe InstanceStateChangeReason
stateChangeReason} -> Maybe InstanceStateChangeReason
stateChangeReason) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe InstanceStateChangeReason
a -> InstanceStatus
s {$sel:stateChangeReason:InstanceStatus' :: Maybe InstanceStateChangeReason
stateChangeReason = Maybe InstanceStateChangeReason
a} :: InstanceStatus)
instanceStatus_timeline :: Lens.Lens' InstanceStatus (Prelude.Maybe InstanceTimeline)
instanceStatus_timeline :: Lens' InstanceStatus (Maybe InstanceTimeline)
instanceStatus_timeline = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe InstanceTimeline
timeline :: Maybe InstanceTimeline
$sel:timeline:InstanceStatus' :: InstanceStatus -> Maybe InstanceTimeline
timeline} -> Maybe InstanceTimeline
timeline) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe InstanceTimeline
a -> InstanceStatus
s {$sel:timeline:InstanceStatus' :: Maybe InstanceTimeline
timeline = Maybe InstanceTimeline
a} :: InstanceStatus)
instance Data.FromJSON InstanceStatus where
parseJSON :: Value -> Parser InstanceStatus
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"InstanceStatus"
( \Object
x ->
Maybe InstanceState
-> Maybe InstanceStateChangeReason
-> Maybe InstanceTimeline
-> InstanceStatus
InstanceStatus'
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
"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
"StateChangeReason")
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
"Timeline")
)
instance Prelude.Hashable InstanceStatus where
hashWithSalt :: Int -> InstanceStatus -> Int
hashWithSalt Int
_salt InstanceStatus' {Maybe InstanceState
Maybe InstanceStateChangeReason
Maybe InstanceTimeline
timeline :: Maybe InstanceTimeline
stateChangeReason :: Maybe InstanceStateChangeReason
state :: Maybe InstanceState
$sel:timeline:InstanceStatus' :: InstanceStatus -> Maybe InstanceTimeline
$sel:stateChangeReason:InstanceStatus' :: InstanceStatus -> Maybe InstanceStateChangeReason
$sel:state:InstanceStatus' :: InstanceStatus -> Maybe InstanceState
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceState
state
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceStateChangeReason
stateChangeReason
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceTimeline
timeline
instance Prelude.NFData InstanceStatus where
rnf :: InstanceStatus -> ()
rnf InstanceStatus' {Maybe InstanceState
Maybe InstanceStateChangeReason
Maybe InstanceTimeline
timeline :: Maybe InstanceTimeline
stateChangeReason :: Maybe InstanceStateChangeReason
state :: Maybe InstanceState
$sel:timeline:InstanceStatus' :: InstanceStatus -> Maybe InstanceTimeline
$sel:stateChangeReason:InstanceStatus' :: InstanceStatus -> Maybe InstanceStateChangeReason
$sel:state:InstanceStatus' :: InstanceStatus -> Maybe InstanceState
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceState
state
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceStateChangeReason
stateChangeReason
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceTimeline
timeline