{-# 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.InstanceGroupModifyConfig 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.Configuration
import Amazonka.EMR.Types.ReconfigurationType
import Amazonka.EMR.Types.ShrinkPolicy
import qualified Amazonka.Prelude as Prelude
data InstanceGroupModifyConfig = InstanceGroupModifyConfig'
{
InstanceGroupModifyConfig -> Maybe [Configuration]
configurations :: Prelude.Maybe [Configuration],
InstanceGroupModifyConfig -> Maybe [Text]
eC2InstanceIdsToTerminate :: Prelude.Maybe [Prelude.Text],
InstanceGroupModifyConfig -> Maybe Int
instanceCount :: Prelude.Maybe Prelude.Int,
InstanceGroupModifyConfig -> Maybe ReconfigurationType
reconfigurationType :: Prelude.Maybe ReconfigurationType,
InstanceGroupModifyConfig -> Maybe ShrinkPolicy
shrinkPolicy :: Prelude.Maybe ShrinkPolicy,
InstanceGroupModifyConfig -> Text
instanceGroupId :: Prelude.Text
}
deriving (InstanceGroupModifyConfig -> InstanceGroupModifyConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstanceGroupModifyConfig -> InstanceGroupModifyConfig -> Bool
$c/= :: InstanceGroupModifyConfig -> InstanceGroupModifyConfig -> Bool
== :: InstanceGroupModifyConfig -> InstanceGroupModifyConfig -> Bool
$c== :: InstanceGroupModifyConfig -> InstanceGroupModifyConfig -> Bool
Prelude.Eq, ReadPrec [InstanceGroupModifyConfig]
ReadPrec InstanceGroupModifyConfig
Int -> ReadS InstanceGroupModifyConfig
ReadS [InstanceGroupModifyConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InstanceGroupModifyConfig]
$creadListPrec :: ReadPrec [InstanceGroupModifyConfig]
readPrec :: ReadPrec InstanceGroupModifyConfig
$creadPrec :: ReadPrec InstanceGroupModifyConfig
readList :: ReadS [InstanceGroupModifyConfig]
$creadList :: ReadS [InstanceGroupModifyConfig]
readsPrec :: Int -> ReadS InstanceGroupModifyConfig
$creadsPrec :: Int -> ReadS InstanceGroupModifyConfig
Prelude.Read, Int -> InstanceGroupModifyConfig -> ShowS
[InstanceGroupModifyConfig] -> ShowS
InstanceGroupModifyConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstanceGroupModifyConfig] -> ShowS
$cshowList :: [InstanceGroupModifyConfig] -> ShowS
show :: InstanceGroupModifyConfig -> String
$cshow :: InstanceGroupModifyConfig -> String
showsPrec :: Int -> InstanceGroupModifyConfig -> ShowS
$cshowsPrec :: Int -> InstanceGroupModifyConfig -> ShowS
Prelude.Show, forall x.
Rep InstanceGroupModifyConfig x -> InstanceGroupModifyConfig
forall x.
InstanceGroupModifyConfig -> Rep InstanceGroupModifyConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep InstanceGroupModifyConfig x -> InstanceGroupModifyConfig
$cfrom :: forall x.
InstanceGroupModifyConfig -> Rep InstanceGroupModifyConfig x
Prelude.Generic)
newInstanceGroupModifyConfig ::
Prelude.Text ->
InstanceGroupModifyConfig
newInstanceGroupModifyConfig :: Text -> InstanceGroupModifyConfig
newInstanceGroupModifyConfig Text
pInstanceGroupId_ =
InstanceGroupModifyConfig'
{ $sel:configurations:InstanceGroupModifyConfig' :: Maybe [Configuration]
configurations =
forall a. Maybe a
Prelude.Nothing,
$sel:eC2InstanceIdsToTerminate:InstanceGroupModifyConfig' :: Maybe [Text]
eC2InstanceIdsToTerminate = forall a. Maybe a
Prelude.Nothing,
$sel:instanceCount:InstanceGroupModifyConfig' :: Maybe Int
instanceCount = forall a. Maybe a
Prelude.Nothing,
$sel:reconfigurationType:InstanceGroupModifyConfig' :: Maybe ReconfigurationType
reconfigurationType = forall a. Maybe a
Prelude.Nothing,
$sel:shrinkPolicy:InstanceGroupModifyConfig' :: Maybe ShrinkPolicy
shrinkPolicy = forall a. Maybe a
Prelude.Nothing,
$sel:instanceGroupId:InstanceGroupModifyConfig' :: Text
instanceGroupId = Text
pInstanceGroupId_
}
instanceGroupModifyConfig_configurations :: Lens.Lens' InstanceGroupModifyConfig (Prelude.Maybe [Configuration])
instanceGroupModifyConfig_configurations :: Lens' InstanceGroupModifyConfig (Maybe [Configuration])
instanceGroupModifyConfig_configurations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceGroupModifyConfig' {Maybe [Configuration]
configurations :: Maybe [Configuration]
$sel:configurations:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Configuration]
configurations} -> Maybe [Configuration]
configurations) (\s :: InstanceGroupModifyConfig
s@InstanceGroupModifyConfig' {} Maybe [Configuration]
a -> InstanceGroupModifyConfig
s {$sel:configurations:InstanceGroupModifyConfig' :: Maybe [Configuration]
configurations = Maybe [Configuration]
a} :: InstanceGroupModifyConfig) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instanceGroupModifyConfig_eC2InstanceIdsToTerminate :: Lens.Lens' InstanceGroupModifyConfig (Prelude.Maybe [Prelude.Text])
instanceGroupModifyConfig_eC2InstanceIdsToTerminate :: Lens' InstanceGroupModifyConfig (Maybe [Text])
instanceGroupModifyConfig_eC2InstanceIdsToTerminate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceGroupModifyConfig' {Maybe [Text]
eC2InstanceIdsToTerminate :: Maybe [Text]
$sel:eC2InstanceIdsToTerminate:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Text]
eC2InstanceIdsToTerminate} -> Maybe [Text]
eC2InstanceIdsToTerminate) (\s :: InstanceGroupModifyConfig
s@InstanceGroupModifyConfig' {} Maybe [Text]
a -> InstanceGroupModifyConfig
s {$sel:eC2InstanceIdsToTerminate:InstanceGroupModifyConfig' :: Maybe [Text]
eC2InstanceIdsToTerminate = Maybe [Text]
a} :: InstanceGroupModifyConfig) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instanceGroupModifyConfig_instanceCount :: Lens.Lens' InstanceGroupModifyConfig (Prelude.Maybe Prelude.Int)
instanceGroupModifyConfig_instanceCount :: Lens' InstanceGroupModifyConfig (Maybe Int)
instanceGroupModifyConfig_instanceCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceGroupModifyConfig' {Maybe Int
instanceCount :: Maybe Int
$sel:instanceCount:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe Int
instanceCount} -> Maybe Int
instanceCount) (\s :: InstanceGroupModifyConfig
s@InstanceGroupModifyConfig' {} Maybe Int
a -> InstanceGroupModifyConfig
s {$sel:instanceCount:InstanceGroupModifyConfig' :: Maybe Int
instanceCount = Maybe Int
a} :: InstanceGroupModifyConfig)
instanceGroupModifyConfig_reconfigurationType :: Lens.Lens' InstanceGroupModifyConfig (Prelude.Maybe ReconfigurationType)
instanceGroupModifyConfig_reconfigurationType :: Lens' InstanceGroupModifyConfig (Maybe ReconfigurationType)
instanceGroupModifyConfig_reconfigurationType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceGroupModifyConfig' {Maybe ReconfigurationType
reconfigurationType :: Maybe ReconfigurationType
$sel:reconfigurationType:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ReconfigurationType
reconfigurationType} -> Maybe ReconfigurationType
reconfigurationType) (\s :: InstanceGroupModifyConfig
s@InstanceGroupModifyConfig' {} Maybe ReconfigurationType
a -> InstanceGroupModifyConfig
s {$sel:reconfigurationType:InstanceGroupModifyConfig' :: Maybe ReconfigurationType
reconfigurationType = Maybe ReconfigurationType
a} :: InstanceGroupModifyConfig)
instanceGroupModifyConfig_shrinkPolicy :: Lens.Lens' InstanceGroupModifyConfig (Prelude.Maybe ShrinkPolicy)
instanceGroupModifyConfig_shrinkPolicy :: Lens' InstanceGroupModifyConfig (Maybe ShrinkPolicy)
instanceGroupModifyConfig_shrinkPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceGroupModifyConfig' {Maybe ShrinkPolicy
shrinkPolicy :: Maybe ShrinkPolicy
$sel:shrinkPolicy:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ShrinkPolicy
shrinkPolicy} -> Maybe ShrinkPolicy
shrinkPolicy) (\s :: InstanceGroupModifyConfig
s@InstanceGroupModifyConfig' {} Maybe ShrinkPolicy
a -> InstanceGroupModifyConfig
s {$sel:shrinkPolicy:InstanceGroupModifyConfig' :: Maybe ShrinkPolicy
shrinkPolicy = Maybe ShrinkPolicy
a} :: InstanceGroupModifyConfig)
instanceGroupModifyConfig_instanceGroupId :: Lens.Lens' InstanceGroupModifyConfig Prelude.Text
instanceGroupModifyConfig_instanceGroupId :: Lens' InstanceGroupModifyConfig Text
instanceGroupModifyConfig_instanceGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceGroupModifyConfig' {Text
instanceGroupId :: Text
$sel:instanceGroupId:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Text
instanceGroupId} -> Text
instanceGroupId) (\s :: InstanceGroupModifyConfig
s@InstanceGroupModifyConfig' {} Text
a -> InstanceGroupModifyConfig
s {$sel:instanceGroupId:InstanceGroupModifyConfig' :: Text
instanceGroupId = Text
a} :: InstanceGroupModifyConfig)
instance Prelude.Hashable InstanceGroupModifyConfig where
hashWithSalt :: Int -> InstanceGroupModifyConfig -> Int
hashWithSalt Int
_salt InstanceGroupModifyConfig' {Maybe Int
Maybe [Text]
Maybe [Configuration]
Maybe ReconfigurationType
Maybe ShrinkPolicy
Text
instanceGroupId :: Text
shrinkPolicy :: Maybe ShrinkPolicy
reconfigurationType :: Maybe ReconfigurationType
instanceCount :: Maybe Int
eC2InstanceIdsToTerminate :: Maybe [Text]
configurations :: Maybe [Configuration]
$sel:instanceGroupId:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Text
$sel:shrinkPolicy:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ShrinkPolicy
$sel:reconfigurationType:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ReconfigurationType
$sel:instanceCount:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe Int
$sel:eC2InstanceIdsToTerminate:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Text]
$sel:configurations:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Configuration]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Configuration]
configurations
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
eC2InstanceIdsToTerminate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
instanceCount
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReconfigurationType
reconfigurationType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ShrinkPolicy
shrinkPolicy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceGroupId
instance Prelude.NFData InstanceGroupModifyConfig where
rnf :: InstanceGroupModifyConfig -> ()
rnf InstanceGroupModifyConfig' {Maybe Int
Maybe [Text]
Maybe [Configuration]
Maybe ReconfigurationType
Maybe ShrinkPolicy
Text
instanceGroupId :: Text
shrinkPolicy :: Maybe ShrinkPolicy
reconfigurationType :: Maybe ReconfigurationType
instanceCount :: Maybe Int
eC2InstanceIdsToTerminate :: Maybe [Text]
configurations :: Maybe [Configuration]
$sel:instanceGroupId:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Text
$sel:shrinkPolicy:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ShrinkPolicy
$sel:reconfigurationType:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ReconfigurationType
$sel:instanceCount:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe Int
$sel:eC2InstanceIdsToTerminate:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Text]
$sel:configurations:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Configuration]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Configuration]
configurations
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
eC2InstanceIdsToTerminate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
instanceCount
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ReconfigurationType
reconfigurationType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ShrinkPolicy
shrinkPolicy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
instanceGroupId
instance Data.ToJSON InstanceGroupModifyConfig where
toJSON :: InstanceGroupModifyConfig -> Value
toJSON InstanceGroupModifyConfig' {Maybe Int
Maybe [Text]
Maybe [Configuration]
Maybe ReconfigurationType
Maybe ShrinkPolicy
Text
instanceGroupId :: Text
shrinkPolicy :: Maybe ShrinkPolicy
reconfigurationType :: Maybe ReconfigurationType
instanceCount :: Maybe Int
eC2InstanceIdsToTerminate :: Maybe [Text]
configurations :: Maybe [Configuration]
$sel:instanceGroupId:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Text
$sel:shrinkPolicy:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ShrinkPolicy
$sel:reconfigurationType:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe ReconfigurationType
$sel:instanceCount:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe Int
$sel:eC2InstanceIdsToTerminate:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Text]
$sel:configurations:InstanceGroupModifyConfig' :: InstanceGroupModifyConfig -> Maybe [Configuration]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Configurations" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Configuration]
configurations,
(Key
"EC2InstanceIdsToTerminate" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
eC2InstanceIdsToTerminate,
(Key
"InstanceCount" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
instanceCount,
(Key
"ReconfigurationType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ReconfigurationType
reconfigurationType,
(Key
"ShrinkPolicy" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ShrinkPolicy
shrinkPolicy,
forall a. a -> Maybe a
Prelude.Just
(Key
"InstanceGroupId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
instanceGroupId)
]
)