{-# 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.JobFlowInstancesConfig 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.InstanceFleetConfig
import Amazonka.EMR.Types.InstanceGroupConfig
import Amazonka.EMR.Types.PlacementType
import qualified Amazonka.Prelude as Prelude
data JobFlowInstancesConfig = JobFlowInstancesConfig'
  { 
    JobFlowInstancesConfig -> Maybe [Text]
additionalMasterSecurityGroups :: Prelude.Maybe [Prelude.Text],
    
    
    JobFlowInstancesConfig -> Maybe [Text]
additionalSlaveSecurityGroups :: Prelude.Maybe [Prelude.Text],
    
    
    JobFlowInstancesConfig -> Maybe Text
ec2KeyName :: Prelude.Maybe Prelude.Text,
    
    
    
    
    
    JobFlowInstancesConfig -> Maybe Text
ec2SubnetId :: Prelude.Maybe Prelude.Text,
    
    
    
    
    
    
    JobFlowInstancesConfig -> Maybe [Text]
ec2SubnetIds :: Prelude.Maybe [Prelude.Text],
    
    
    
    JobFlowInstancesConfig -> Maybe Text
emrManagedMasterSecurityGroup :: Prelude.Maybe Prelude.Text,
    
    
    
    JobFlowInstancesConfig -> Maybe Text
emrManagedSlaveSecurityGroup :: Prelude.Maybe Prelude.Text,
    
    
    
    
    
    
    
    JobFlowInstancesConfig -> Maybe Text
hadoopVersion :: Prelude.Maybe Prelude.Text,
    
    JobFlowInstancesConfig -> Maybe Int
instanceCount :: Prelude.Maybe Prelude.Int,
    
    
    
    
    
    JobFlowInstancesConfig -> Maybe [InstanceFleetConfig]
instanceFleets :: Prelude.Maybe [InstanceFleetConfig],
    
    JobFlowInstancesConfig -> Maybe [InstanceGroupConfig]
instanceGroups :: Prelude.Maybe [InstanceGroupConfig],
    
    
    
    
    
    JobFlowInstancesConfig -> Maybe Bool
keepJobFlowAliveWhenNoSteps :: Prelude.Maybe Prelude.Bool,
    
    JobFlowInstancesConfig -> Maybe Text
masterInstanceType :: Prelude.Maybe Prelude.Text,
    
    JobFlowInstancesConfig -> Maybe PlacementType
placement :: Prelude.Maybe PlacementType,
    
    
    JobFlowInstancesConfig -> Maybe Text
serviceAccessSecurityGroup :: Prelude.Maybe Prelude.Text,
    
    JobFlowInstancesConfig -> Maybe Text
slaveInstanceType :: Prelude.Maybe Prelude.Text,
    
    
    
    JobFlowInstancesConfig -> Maybe Bool
terminationProtected :: Prelude.Maybe Prelude.Bool
  }
  deriving (JobFlowInstancesConfig -> JobFlowInstancesConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: JobFlowInstancesConfig -> JobFlowInstancesConfig -> Bool
$c/= :: JobFlowInstancesConfig -> JobFlowInstancesConfig -> Bool
== :: JobFlowInstancesConfig -> JobFlowInstancesConfig -> Bool
$c== :: JobFlowInstancesConfig -> JobFlowInstancesConfig -> Bool
Prelude.Eq, ReadPrec [JobFlowInstancesConfig]
ReadPrec JobFlowInstancesConfig
Int -> ReadS JobFlowInstancesConfig
ReadS [JobFlowInstancesConfig]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [JobFlowInstancesConfig]
$creadListPrec :: ReadPrec [JobFlowInstancesConfig]
readPrec :: ReadPrec JobFlowInstancesConfig
$creadPrec :: ReadPrec JobFlowInstancesConfig
readList :: ReadS [JobFlowInstancesConfig]
$creadList :: ReadS [JobFlowInstancesConfig]
readsPrec :: Int -> ReadS JobFlowInstancesConfig
$creadsPrec :: Int -> ReadS JobFlowInstancesConfig
Prelude.Read, Int -> JobFlowInstancesConfig -> ShowS
[JobFlowInstancesConfig] -> ShowS
JobFlowInstancesConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [JobFlowInstancesConfig] -> ShowS
$cshowList :: [JobFlowInstancesConfig] -> ShowS
show :: JobFlowInstancesConfig -> String
$cshow :: JobFlowInstancesConfig -> String
showsPrec :: Int -> JobFlowInstancesConfig -> ShowS
$cshowsPrec :: Int -> JobFlowInstancesConfig -> ShowS
Prelude.Show, forall x. Rep JobFlowInstancesConfig x -> JobFlowInstancesConfig
forall x. JobFlowInstancesConfig -> Rep JobFlowInstancesConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep JobFlowInstancesConfig x -> JobFlowInstancesConfig
$cfrom :: forall x. JobFlowInstancesConfig -> Rep JobFlowInstancesConfig x
Prelude.Generic)
newJobFlowInstancesConfig ::
  JobFlowInstancesConfig
newJobFlowInstancesConfig :: JobFlowInstancesConfig
newJobFlowInstancesConfig =
  JobFlowInstancesConfig'
    { $sel:additionalMasterSecurityGroups:JobFlowInstancesConfig' :: Maybe [Text]
additionalMasterSecurityGroups =
        forall a. Maybe a
Prelude.Nothing,
      $sel:additionalSlaveSecurityGroups:JobFlowInstancesConfig' :: Maybe [Text]
additionalSlaveSecurityGroups = forall a. Maybe a
Prelude.Nothing,
      $sel:ec2KeyName:JobFlowInstancesConfig' :: Maybe Text
ec2KeyName = forall a. Maybe a
Prelude.Nothing,
      $sel:ec2SubnetId:JobFlowInstancesConfig' :: Maybe Text
ec2SubnetId = forall a. Maybe a
Prelude.Nothing,
      $sel:ec2SubnetIds:JobFlowInstancesConfig' :: Maybe [Text]
ec2SubnetIds = forall a. Maybe a
Prelude.Nothing,
      $sel:emrManagedMasterSecurityGroup:JobFlowInstancesConfig' :: Maybe Text
emrManagedMasterSecurityGroup = forall a. Maybe a
Prelude.Nothing,
      $sel:emrManagedSlaveSecurityGroup:JobFlowInstancesConfig' :: Maybe Text
emrManagedSlaveSecurityGroup = forall a. Maybe a
Prelude.Nothing,
      $sel:hadoopVersion:JobFlowInstancesConfig' :: Maybe Text
hadoopVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceCount:JobFlowInstancesConfig' :: Maybe Int
instanceCount = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceFleets:JobFlowInstancesConfig' :: Maybe [InstanceFleetConfig]
instanceFleets = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceGroups:JobFlowInstancesConfig' :: Maybe [InstanceGroupConfig]
instanceGroups = forall a. Maybe a
Prelude.Nothing,
      $sel:keepJobFlowAliveWhenNoSteps:JobFlowInstancesConfig' :: Maybe Bool
keepJobFlowAliveWhenNoSteps = forall a. Maybe a
Prelude.Nothing,
      $sel:masterInstanceType:JobFlowInstancesConfig' :: Maybe Text
masterInstanceType = forall a. Maybe a
Prelude.Nothing,
      $sel:placement:JobFlowInstancesConfig' :: Maybe PlacementType
placement = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceAccessSecurityGroup:JobFlowInstancesConfig' :: Maybe Text
serviceAccessSecurityGroup = forall a. Maybe a
Prelude.Nothing,
      $sel:slaveInstanceType:JobFlowInstancesConfig' :: Maybe Text
slaveInstanceType = forall a. Maybe a
Prelude.Nothing,
      $sel:terminationProtected:JobFlowInstancesConfig' :: Maybe Bool
terminationProtected = forall a. Maybe a
Prelude.Nothing
    }
jobFlowInstancesConfig_additionalMasterSecurityGroups :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe [Prelude.Text])
jobFlowInstancesConfig_additionalMasterSecurityGroups :: Lens' JobFlowInstancesConfig (Maybe [Text])
jobFlowInstancesConfig_additionalMasterSecurityGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe [Text]
additionalMasterSecurityGroups :: Maybe [Text]
$sel:additionalMasterSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
additionalMasterSecurityGroups} -> Maybe [Text]
additionalMasterSecurityGroups) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe [Text]
a -> JobFlowInstancesConfig
s {$sel:additionalMasterSecurityGroups:JobFlowInstancesConfig' :: Maybe [Text]
additionalMasterSecurityGroups = Maybe [Text]
a} :: JobFlowInstancesConfig) 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
jobFlowInstancesConfig_additionalSlaveSecurityGroups :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe [Prelude.Text])
jobFlowInstancesConfig_additionalSlaveSecurityGroups :: Lens' JobFlowInstancesConfig (Maybe [Text])
jobFlowInstancesConfig_additionalSlaveSecurityGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe [Text]
additionalSlaveSecurityGroups :: Maybe [Text]
$sel:additionalSlaveSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
additionalSlaveSecurityGroups} -> Maybe [Text]
additionalSlaveSecurityGroups) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe [Text]
a -> JobFlowInstancesConfig
s {$sel:additionalSlaveSecurityGroups:JobFlowInstancesConfig' :: Maybe [Text]
additionalSlaveSecurityGroups = Maybe [Text]
a} :: JobFlowInstancesConfig) 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
jobFlowInstancesConfig_ec2KeyName :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_ec2KeyName :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_ec2KeyName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
ec2KeyName :: Maybe Text
$sel:ec2KeyName:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
ec2KeyName} -> Maybe Text
ec2KeyName) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:ec2KeyName:JobFlowInstancesConfig' :: Maybe Text
ec2KeyName = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_ec2SubnetId :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_ec2SubnetId :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_ec2SubnetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
ec2SubnetId :: Maybe Text
$sel:ec2SubnetId:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
ec2SubnetId} -> Maybe Text
ec2SubnetId) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:ec2SubnetId:JobFlowInstancesConfig' :: Maybe Text
ec2SubnetId = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_ec2SubnetIds :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe [Prelude.Text])
jobFlowInstancesConfig_ec2SubnetIds :: Lens' JobFlowInstancesConfig (Maybe [Text])
jobFlowInstancesConfig_ec2SubnetIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe [Text]
ec2SubnetIds :: Maybe [Text]
$sel:ec2SubnetIds:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
ec2SubnetIds} -> Maybe [Text]
ec2SubnetIds) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe [Text]
a -> JobFlowInstancesConfig
s {$sel:ec2SubnetIds:JobFlowInstancesConfig' :: Maybe [Text]
ec2SubnetIds = Maybe [Text]
a} :: JobFlowInstancesConfig) 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
jobFlowInstancesConfig_emrManagedMasterSecurityGroup :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_emrManagedMasterSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_emrManagedMasterSecurityGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
emrManagedMasterSecurityGroup :: Maybe Text
$sel:emrManagedMasterSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
emrManagedMasterSecurityGroup} -> Maybe Text
emrManagedMasterSecurityGroup) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:emrManagedMasterSecurityGroup:JobFlowInstancesConfig' :: Maybe Text
emrManagedMasterSecurityGroup = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_emrManagedSlaveSecurityGroup :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_emrManagedSlaveSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_emrManagedSlaveSecurityGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
emrManagedSlaveSecurityGroup :: Maybe Text
$sel:emrManagedSlaveSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
emrManagedSlaveSecurityGroup} -> Maybe Text
emrManagedSlaveSecurityGroup) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:emrManagedSlaveSecurityGroup:JobFlowInstancesConfig' :: Maybe Text
emrManagedSlaveSecurityGroup = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_hadoopVersion :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_hadoopVersion :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_hadoopVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
hadoopVersion :: Maybe Text
$sel:hadoopVersion:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
hadoopVersion} -> Maybe Text
hadoopVersion) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:hadoopVersion:JobFlowInstancesConfig' :: Maybe Text
hadoopVersion = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_instanceCount :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Int)
jobFlowInstancesConfig_instanceCount :: Lens' JobFlowInstancesConfig (Maybe Int)
jobFlowInstancesConfig_instanceCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Int
instanceCount :: Maybe Int
$sel:instanceCount:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Int
instanceCount} -> Maybe Int
instanceCount) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Int
a -> JobFlowInstancesConfig
s {$sel:instanceCount:JobFlowInstancesConfig' :: Maybe Int
instanceCount = Maybe Int
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_instanceFleets :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe [InstanceFleetConfig])
jobFlowInstancesConfig_instanceFleets :: Lens' JobFlowInstancesConfig (Maybe [InstanceFleetConfig])
jobFlowInstancesConfig_instanceFleets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe [InstanceFleetConfig]
instanceFleets :: Maybe [InstanceFleetConfig]
$sel:instanceFleets:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceFleetConfig]
instanceFleets} -> Maybe [InstanceFleetConfig]
instanceFleets) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe [InstanceFleetConfig]
a -> JobFlowInstancesConfig
s {$sel:instanceFleets:JobFlowInstancesConfig' :: Maybe [InstanceFleetConfig]
instanceFleets = Maybe [InstanceFleetConfig]
a} :: JobFlowInstancesConfig) 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
jobFlowInstancesConfig_instanceGroups :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe [InstanceGroupConfig])
jobFlowInstancesConfig_instanceGroups :: Lens' JobFlowInstancesConfig (Maybe [InstanceGroupConfig])
jobFlowInstancesConfig_instanceGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe [InstanceGroupConfig]
instanceGroups :: Maybe [InstanceGroupConfig]
$sel:instanceGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceGroupConfig]
instanceGroups} -> Maybe [InstanceGroupConfig]
instanceGroups) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe [InstanceGroupConfig]
a -> JobFlowInstancesConfig
s {$sel:instanceGroups:JobFlowInstancesConfig' :: Maybe [InstanceGroupConfig]
instanceGroups = Maybe [InstanceGroupConfig]
a} :: JobFlowInstancesConfig) 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
jobFlowInstancesConfig_keepJobFlowAliveWhenNoSteps :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Bool)
jobFlowInstancesConfig_keepJobFlowAliveWhenNoSteps :: Lens' JobFlowInstancesConfig (Maybe Bool)
jobFlowInstancesConfig_keepJobFlowAliveWhenNoSteps = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Bool
keepJobFlowAliveWhenNoSteps :: Maybe Bool
$sel:keepJobFlowAliveWhenNoSteps:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
keepJobFlowAliveWhenNoSteps} -> Maybe Bool
keepJobFlowAliveWhenNoSteps) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Bool
a -> JobFlowInstancesConfig
s {$sel:keepJobFlowAliveWhenNoSteps:JobFlowInstancesConfig' :: Maybe Bool
keepJobFlowAliveWhenNoSteps = Maybe Bool
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_masterInstanceType :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_masterInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_masterInstanceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
masterInstanceType :: Maybe Text
$sel:masterInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
masterInstanceType} -> Maybe Text
masterInstanceType) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:masterInstanceType:JobFlowInstancesConfig' :: Maybe Text
masterInstanceType = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_placement :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe PlacementType)
jobFlowInstancesConfig_placement :: Lens' JobFlowInstancesConfig (Maybe PlacementType)
jobFlowInstancesConfig_placement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe PlacementType
placement :: Maybe PlacementType
$sel:placement:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe PlacementType
placement} -> Maybe PlacementType
placement) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe PlacementType
a -> JobFlowInstancesConfig
s {$sel:placement:JobFlowInstancesConfig' :: Maybe PlacementType
placement = Maybe PlacementType
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_serviceAccessSecurityGroup :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_serviceAccessSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_serviceAccessSecurityGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
serviceAccessSecurityGroup :: Maybe Text
$sel:serviceAccessSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
serviceAccessSecurityGroup} -> Maybe Text
serviceAccessSecurityGroup) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:serviceAccessSecurityGroup:JobFlowInstancesConfig' :: Maybe Text
serviceAccessSecurityGroup = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_slaveInstanceType :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Text)
jobFlowInstancesConfig_slaveInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)
jobFlowInstancesConfig_slaveInstanceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Text
slaveInstanceType :: Maybe Text
$sel:slaveInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
slaveInstanceType} -> Maybe Text
slaveInstanceType) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Text
a -> JobFlowInstancesConfig
s {$sel:slaveInstanceType:JobFlowInstancesConfig' :: Maybe Text
slaveInstanceType = Maybe Text
a} :: JobFlowInstancesConfig)
jobFlowInstancesConfig_terminationProtected :: Lens.Lens' JobFlowInstancesConfig (Prelude.Maybe Prelude.Bool)
jobFlowInstancesConfig_terminationProtected :: Lens' JobFlowInstancesConfig (Maybe Bool)
jobFlowInstancesConfig_terminationProtected = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobFlowInstancesConfig' {Maybe Bool
terminationProtected :: Maybe Bool
$sel:terminationProtected:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
terminationProtected} -> Maybe Bool
terminationProtected) (\s :: JobFlowInstancesConfig
s@JobFlowInstancesConfig' {} Maybe Bool
a -> JobFlowInstancesConfig
s {$sel:terminationProtected:JobFlowInstancesConfig' :: Maybe Bool
terminationProtected = Maybe Bool
a} :: JobFlowInstancesConfig)
instance Prelude.Hashable JobFlowInstancesConfig where
  hashWithSalt :: Int -> JobFlowInstancesConfig -> Int
hashWithSalt Int
_salt JobFlowInstancesConfig' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [InstanceFleetConfig]
Maybe [InstanceGroupConfig]
Maybe Text
Maybe PlacementType
terminationProtected :: Maybe Bool
slaveInstanceType :: Maybe Text
serviceAccessSecurityGroup :: Maybe Text
placement :: Maybe PlacementType
masterInstanceType :: Maybe Text
keepJobFlowAliveWhenNoSteps :: Maybe Bool
instanceGroups :: Maybe [InstanceGroupConfig]
instanceFleets :: Maybe [InstanceFleetConfig]
instanceCount :: Maybe Int
hadoopVersion :: Maybe Text
emrManagedSlaveSecurityGroup :: Maybe Text
emrManagedMasterSecurityGroup :: Maybe Text
ec2SubnetIds :: Maybe [Text]
ec2SubnetId :: Maybe Text
ec2KeyName :: Maybe Text
additionalSlaveSecurityGroups :: Maybe [Text]
additionalMasterSecurityGroups :: Maybe [Text]
$sel:terminationProtected:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
$sel:slaveInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:serviceAccessSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:placement:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe PlacementType
$sel:masterInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:keepJobFlowAliveWhenNoSteps:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
$sel:instanceGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceGroupConfig]
$sel:instanceFleets:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceFleetConfig]
$sel:instanceCount:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Int
$sel:hadoopVersion:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:emrManagedSlaveSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:emrManagedMasterSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:ec2SubnetIds:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
$sel:ec2SubnetId:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:ec2KeyName:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:additionalSlaveSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
$sel:additionalMasterSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
additionalMasterSecurityGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
additionalSlaveSecurityGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ec2KeyName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ec2SubnetId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
ec2SubnetIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
emrManagedMasterSecurityGroup
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
emrManagedSlaveSecurityGroup
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
hadoopVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
instanceCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [InstanceFleetConfig]
instanceFleets
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [InstanceGroupConfig]
instanceGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
keepJobFlowAliveWhenNoSteps
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
masterInstanceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PlacementType
placement
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceAccessSecurityGroup
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
slaveInstanceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
terminationProtected
instance Prelude.NFData JobFlowInstancesConfig where
  rnf :: JobFlowInstancesConfig -> ()
rnf JobFlowInstancesConfig' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [InstanceFleetConfig]
Maybe [InstanceGroupConfig]
Maybe Text
Maybe PlacementType
terminationProtected :: Maybe Bool
slaveInstanceType :: Maybe Text
serviceAccessSecurityGroup :: Maybe Text
placement :: Maybe PlacementType
masterInstanceType :: Maybe Text
keepJobFlowAliveWhenNoSteps :: Maybe Bool
instanceGroups :: Maybe [InstanceGroupConfig]
instanceFleets :: Maybe [InstanceFleetConfig]
instanceCount :: Maybe Int
hadoopVersion :: Maybe Text
emrManagedSlaveSecurityGroup :: Maybe Text
emrManagedMasterSecurityGroup :: Maybe Text
ec2SubnetIds :: Maybe [Text]
ec2SubnetId :: Maybe Text
ec2KeyName :: Maybe Text
additionalSlaveSecurityGroups :: Maybe [Text]
additionalMasterSecurityGroups :: Maybe [Text]
$sel:terminationProtected:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
$sel:slaveInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:serviceAccessSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:placement:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe PlacementType
$sel:masterInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:keepJobFlowAliveWhenNoSteps:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
$sel:instanceGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceGroupConfig]
$sel:instanceFleets:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceFleetConfig]
$sel:instanceCount:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Int
$sel:hadoopVersion:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:emrManagedSlaveSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:emrManagedMasterSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:ec2SubnetIds:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
$sel:ec2SubnetId:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:ec2KeyName:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:additionalSlaveSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
$sel:additionalMasterSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
additionalMasterSecurityGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
additionalSlaveSecurityGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ec2KeyName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ec2SubnetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
ec2SubnetIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
emrManagedMasterSecurityGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
emrManagedSlaveSecurityGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
hadoopVersion
      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 [InstanceFleetConfig]
instanceFleets
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [InstanceGroupConfig]
instanceGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
keepJobFlowAliveWhenNoSteps
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
masterInstanceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PlacementType
placement
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceAccessSecurityGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
slaveInstanceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
terminationProtected
instance Data.ToJSON JobFlowInstancesConfig where
  toJSON :: JobFlowInstancesConfig -> Value
toJSON JobFlowInstancesConfig' {Maybe Bool
Maybe Int
Maybe [Text]
Maybe [InstanceFleetConfig]
Maybe [InstanceGroupConfig]
Maybe Text
Maybe PlacementType
terminationProtected :: Maybe Bool
slaveInstanceType :: Maybe Text
serviceAccessSecurityGroup :: Maybe Text
placement :: Maybe PlacementType
masterInstanceType :: Maybe Text
keepJobFlowAliveWhenNoSteps :: Maybe Bool
instanceGroups :: Maybe [InstanceGroupConfig]
instanceFleets :: Maybe [InstanceFleetConfig]
instanceCount :: Maybe Int
hadoopVersion :: Maybe Text
emrManagedSlaveSecurityGroup :: Maybe Text
emrManagedMasterSecurityGroup :: Maybe Text
ec2SubnetIds :: Maybe [Text]
ec2SubnetId :: Maybe Text
ec2KeyName :: Maybe Text
additionalSlaveSecurityGroups :: Maybe [Text]
additionalMasterSecurityGroups :: Maybe [Text]
$sel:terminationProtected:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
$sel:slaveInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:serviceAccessSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:placement:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe PlacementType
$sel:masterInstanceType:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:keepJobFlowAliveWhenNoSteps:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Bool
$sel:instanceGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceGroupConfig]
$sel:instanceFleets:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [InstanceFleetConfig]
$sel:instanceCount:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Int
$sel:hadoopVersion:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:emrManagedSlaveSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:emrManagedMasterSecurityGroup:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:ec2SubnetIds:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
$sel:ec2SubnetId:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:ec2KeyName:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe Text
$sel:additionalSlaveSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
$sel:additionalMasterSecurityGroups:JobFlowInstancesConfig' :: JobFlowInstancesConfig -> Maybe [Text]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"AdditionalMasterSecurityGroups" 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]
additionalMasterSecurityGroups,
            (Key
"AdditionalSlaveSecurityGroups" 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]
additionalSlaveSecurityGroups,
            (Key
"Ec2KeyName" 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
ec2KeyName,
            (Key
"Ec2SubnetId" 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
ec2SubnetId,
            (Key
"Ec2SubnetIds" 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]
ec2SubnetIds,
            (Key
"EmrManagedMasterSecurityGroup" 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
emrManagedMasterSecurityGroup,
            (Key
"EmrManagedSlaveSecurityGroup" 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
emrManagedSlaveSecurityGroup,
            (Key
"HadoopVersion" 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
hadoopVersion,
            (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
"InstanceFleets" 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 [InstanceFleetConfig]
instanceFleets,
            (Key
"InstanceGroups" 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 [InstanceGroupConfig]
instanceGroups,
            (Key
"KeepJobFlowAliveWhenNoSteps" 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 Bool
keepJobFlowAliveWhenNoSteps,
            (Key
"MasterInstanceType" 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
masterInstanceType,
            (Key
"Placement" 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 PlacementType
placement,
            (Key
"ServiceAccessSecurityGroup" 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
serviceAccessSecurityGroup,
            (Key
"SlaveInstanceType" 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
slaveInstanceType,
            (Key
"TerminationProtected" 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 Bool
terminationProtected
          ]
      )