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