module Stratosphere.EMR.Cluster.JobFlowInstancesConfigProperty ( module Exports, JobFlowInstancesConfigProperty(..), mkJobFlowInstancesConfigProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EMR.Cluster.InstanceFleetConfigProperty as Exports import {-# SOURCE #-} Stratosphere.EMR.Cluster.InstanceGroupConfigProperty as Exports import {-# SOURCE #-} Stratosphere.EMR.Cluster.PlacementTypeProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data JobFlowInstancesConfigProperty = -- | See: JobFlowInstancesConfigProperty {haddock_workaround_ :: (), -- | See: additionalMasterSecurityGroups :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: additionalSlaveSecurityGroups :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: coreInstanceFleet :: (Prelude.Maybe InstanceFleetConfigProperty), -- | See: coreInstanceGroup :: (Prelude.Maybe InstanceGroupConfigProperty), -- | See: ec2KeyName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: ec2SubnetId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: ec2SubnetIds :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: emrManagedMasterSecurityGroup :: (Prelude.Maybe (Value Prelude.Text)), -- | See: emrManagedSlaveSecurityGroup :: (Prelude.Maybe (Value Prelude.Text)), -- | See: hadoopVersion :: (Prelude.Maybe (Value Prelude.Text)), -- | See: keepJobFlowAliveWhenNoSteps :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: masterInstanceFleet :: (Prelude.Maybe InstanceFleetConfigProperty), -- | See: masterInstanceGroup :: (Prelude.Maybe InstanceGroupConfigProperty), -- | See: placement :: (Prelude.Maybe PlacementTypeProperty), -- | See: serviceAccessSecurityGroup :: (Prelude.Maybe (Value Prelude.Text)), -- | See: taskInstanceFleets :: (Prelude.Maybe [InstanceFleetConfigProperty]), -- | See: taskInstanceGroups :: (Prelude.Maybe [InstanceGroupConfigProperty]), -- | See: terminationProtected :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: unhealthyNodeReplacement :: (Prelude.Maybe (Value Prelude.Bool))} deriving stock (Prelude.Eq, Prelude.Show) mkJobFlowInstancesConfigProperty :: JobFlowInstancesConfigProperty mkJobFlowInstancesConfigProperty = JobFlowInstancesConfigProperty {haddock_workaround_ = (), additionalMasterSecurityGroups = Prelude.Nothing, additionalSlaveSecurityGroups = Prelude.Nothing, coreInstanceFleet = Prelude.Nothing, coreInstanceGroup = Prelude.Nothing, ec2KeyName = Prelude.Nothing, ec2SubnetId = Prelude.Nothing, ec2SubnetIds = Prelude.Nothing, emrManagedMasterSecurityGroup = Prelude.Nothing, emrManagedSlaveSecurityGroup = Prelude.Nothing, hadoopVersion = Prelude.Nothing, keepJobFlowAliveWhenNoSteps = Prelude.Nothing, masterInstanceFleet = Prelude.Nothing, masterInstanceGroup = Prelude.Nothing, placement = Prelude.Nothing, serviceAccessSecurityGroup = Prelude.Nothing, taskInstanceFleets = Prelude.Nothing, taskInstanceGroups = Prelude.Nothing, terminationProtected = Prelude.Nothing, unhealthyNodeReplacement = Prelude.Nothing} instance ToResourceProperties JobFlowInstancesConfigProperty where toResourceProperties JobFlowInstancesConfigProperty {..} = ResourceProperties {awsType = "AWS::EMR::Cluster.JobFlowInstancesConfig", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "AdditionalMasterSecurityGroups" Prelude.<$> additionalMasterSecurityGroups, (JSON..=) "AdditionalSlaveSecurityGroups" Prelude.<$> additionalSlaveSecurityGroups, (JSON..=) "CoreInstanceFleet" Prelude.<$> coreInstanceFleet, (JSON..=) "CoreInstanceGroup" Prelude.<$> coreInstanceGroup, (JSON..=) "Ec2KeyName" Prelude.<$> ec2KeyName, (JSON..=) "Ec2SubnetId" Prelude.<$> ec2SubnetId, (JSON..=) "Ec2SubnetIds" Prelude.<$> ec2SubnetIds, (JSON..=) "EmrManagedMasterSecurityGroup" Prelude.<$> emrManagedMasterSecurityGroup, (JSON..=) "EmrManagedSlaveSecurityGroup" Prelude.<$> emrManagedSlaveSecurityGroup, (JSON..=) "HadoopVersion" Prelude.<$> hadoopVersion, (JSON..=) "KeepJobFlowAliveWhenNoSteps" Prelude.<$> keepJobFlowAliveWhenNoSteps, (JSON..=) "MasterInstanceFleet" Prelude.<$> masterInstanceFleet, (JSON..=) "MasterInstanceGroup" Prelude.<$> masterInstanceGroup, (JSON..=) "Placement" Prelude.<$> placement, (JSON..=) "ServiceAccessSecurityGroup" Prelude.<$> serviceAccessSecurityGroup, (JSON..=) "TaskInstanceFleets" Prelude.<$> taskInstanceFleets, (JSON..=) "TaskInstanceGroups" Prelude.<$> taskInstanceGroups, (JSON..=) "TerminationProtected" Prelude.<$> terminationProtected, (JSON..=) "UnhealthyNodeReplacement" Prelude.<$> unhealthyNodeReplacement])} instance JSON.ToJSON JobFlowInstancesConfigProperty where toJSON JobFlowInstancesConfigProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "AdditionalMasterSecurityGroups" Prelude.<$> additionalMasterSecurityGroups, (JSON..=) "AdditionalSlaveSecurityGroups" Prelude.<$> additionalSlaveSecurityGroups, (JSON..=) "CoreInstanceFleet" Prelude.<$> coreInstanceFleet, (JSON..=) "CoreInstanceGroup" Prelude.<$> coreInstanceGroup, (JSON..=) "Ec2KeyName" Prelude.<$> ec2KeyName, (JSON..=) "Ec2SubnetId" Prelude.<$> ec2SubnetId, (JSON..=) "Ec2SubnetIds" Prelude.<$> ec2SubnetIds, (JSON..=) "EmrManagedMasterSecurityGroup" Prelude.<$> emrManagedMasterSecurityGroup, (JSON..=) "EmrManagedSlaveSecurityGroup" Prelude.<$> emrManagedSlaveSecurityGroup, (JSON..=) "HadoopVersion" Prelude.<$> hadoopVersion, (JSON..=) "KeepJobFlowAliveWhenNoSteps" Prelude.<$> keepJobFlowAliveWhenNoSteps, (JSON..=) "MasterInstanceFleet" Prelude.<$> masterInstanceFleet, (JSON..=) "MasterInstanceGroup" Prelude.<$> masterInstanceGroup, (JSON..=) "Placement" Prelude.<$> placement, (JSON..=) "ServiceAccessSecurityGroup" Prelude.<$> serviceAccessSecurityGroup, (JSON..=) "TaskInstanceFleets" Prelude.<$> taskInstanceFleets, (JSON..=) "TaskInstanceGroups" Prelude.<$> taskInstanceGroups, (JSON..=) "TerminationProtected" Prelude.<$> terminationProtected, (JSON..=) "UnhealthyNodeReplacement" Prelude.<$> unhealthyNodeReplacement])) instance Property "AdditionalMasterSecurityGroups" JobFlowInstancesConfigProperty where type PropertyType "AdditionalMasterSecurityGroups" JobFlowInstancesConfigProperty = ValueList Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {additionalMasterSecurityGroups = Prelude.pure newValue, ..} instance Property "AdditionalSlaveSecurityGroups" JobFlowInstancesConfigProperty where type PropertyType "AdditionalSlaveSecurityGroups" JobFlowInstancesConfigProperty = ValueList Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {additionalSlaveSecurityGroups = Prelude.pure newValue, ..} instance Property "CoreInstanceFleet" JobFlowInstancesConfigProperty where type PropertyType "CoreInstanceFleet" JobFlowInstancesConfigProperty = InstanceFleetConfigProperty set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {coreInstanceFleet = Prelude.pure newValue, ..} instance Property "CoreInstanceGroup" JobFlowInstancesConfigProperty where type PropertyType "CoreInstanceGroup" JobFlowInstancesConfigProperty = InstanceGroupConfigProperty set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {coreInstanceGroup = Prelude.pure newValue, ..} instance Property "Ec2KeyName" JobFlowInstancesConfigProperty where type PropertyType "Ec2KeyName" JobFlowInstancesConfigProperty = Value Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {ec2KeyName = Prelude.pure newValue, ..} instance Property "Ec2SubnetId" JobFlowInstancesConfigProperty where type PropertyType "Ec2SubnetId" JobFlowInstancesConfigProperty = Value Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {ec2SubnetId = Prelude.pure newValue, ..} instance Property "Ec2SubnetIds" JobFlowInstancesConfigProperty where type PropertyType "Ec2SubnetIds" JobFlowInstancesConfigProperty = ValueList Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {ec2SubnetIds = Prelude.pure newValue, ..} instance Property "EmrManagedMasterSecurityGroup" JobFlowInstancesConfigProperty where type PropertyType "EmrManagedMasterSecurityGroup" JobFlowInstancesConfigProperty = Value Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {emrManagedMasterSecurityGroup = Prelude.pure newValue, ..} instance Property "EmrManagedSlaveSecurityGroup" JobFlowInstancesConfigProperty where type PropertyType "EmrManagedSlaveSecurityGroup" JobFlowInstancesConfigProperty = Value Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {emrManagedSlaveSecurityGroup = Prelude.pure newValue, ..} instance Property "HadoopVersion" JobFlowInstancesConfigProperty where type PropertyType "HadoopVersion" JobFlowInstancesConfigProperty = Value Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {hadoopVersion = Prelude.pure newValue, ..} instance Property "KeepJobFlowAliveWhenNoSteps" JobFlowInstancesConfigProperty where type PropertyType "KeepJobFlowAliveWhenNoSteps" JobFlowInstancesConfigProperty = Value Prelude.Bool set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {keepJobFlowAliveWhenNoSteps = Prelude.pure newValue, ..} instance Property "MasterInstanceFleet" JobFlowInstancesConfigProperty where type PropertyType "MasterInstanceFleet" JobFlowInstancesConfigProperty = InstanceFleetConfigProperty set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {masterInstanceFleet = Prelude.pure newValue, ..} instance Property "MasterInstanceGroup" JobFlowInstancesConfigProperty where type PropertyType "MasterInstanceGroup" JobFlowInstancesConfigProperty = InstanceGroupConfigProperty set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {masterInstanceGroup = Prelude.pure newValue, ..} instance Property "Placement" JobFlowInstancesConfigProperty where type PropertyType "Placement" JobFlowInstancesConfigProperty = PlacementTypeProperty set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {placement = Prelude.pure newValue, ..} instance Property "ServiceAccessSecurityGroup" JobFlowInstancesConfigProperty where type PropertyType "ServiceAccessSecurityGroup" JobFlowInstancesConfigProperty = Value Prelude.Text set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {serviceAccessSecurityGroup = Prelude.pure newValue, ..} instance Property "TaskInstanceFleets" JobFlowInstancesConfigProperty where type PropertyType "TaskInstanceFleets" JobFlowInstancesConfigProperty = [InstanceFleetConfigProperty] set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {taskInstanceFleets = Prelude.pure newValue, ..} instance Property "TaskInstanceGroups" JobFlowInstancesConfigProperty where type PropertyType "TaskInstanceGroups" JobFlowInstancesConfigProperty = [InstanceGroupConfigProperty] set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {taskInstanceGroups = Prelude.pure newValue, ..} instance Property "TerminationProtected" JobFlowInstancesConfigProperty where type PropertyType "TerminationProtected" JobFlowInstancesConfigProperty = Value Prelude.Bool set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {terminationProtected = Prelude.pure newValue, ..} instance Property "UnhealthyNodeReplacement" JobFlowInstancesConfigProperty where type PropertyType "UnhealthyNodeReplacement" JobFlowInstancesConfigProperty = Value Prelude.Bool set newValue JobFlowInstancesConfigProperty {..} = JobFlowInstancesConfigProperty {unhealthyNodeReplacement = Prelude.pure newValue, ..}