module Stratosphere.EMR.Cluster.ScalingActionProperty ( module Exports, ScalingActionProperty(..), mkScalingActionProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EMR.Cluster.SimpleScalingPolicyConfigurationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data ScalingActionProperty = -- | See: ScalingActionProperty {haddock_workaround_ :: (), -- | See: market :: (Prelude.Maybe (Value Prelude.Text)), -- | See: simpleScalingPolicyConfiguration :: SimpleScalingPolicyConfigurationProperty} deriving stock (Prelude.Eq, Prelude.Show) mkScalingActionProperty :: SimpleScalingPolicyConfigurationProperty -> ScalingActionProperty mkScalingActionProperty simpleScalingPolicyConfiguration = ScalingActionProperty {haddock_workaround_ = (), simpleScalingPolicyConfiguration = simpleScalingPolicyConfiguration, market = Prelude.Nothing} instance ToResourceProperties ScalingActionProperty where toResourceProperties ScalingActionProperty {..} = ResourceProperties {awsType = "AWS::EMR::Cluster.ScalingAction", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["SimpleScalingPolicyConfiguration" JSON..= simpleScalingPolicyConfiguration] (Prelude.catMaybes [(JSON..=) "Market" Prelude.<$> market]))} instance JSON.ToJSON ScalingActionProperty where toJSON ScalingActionProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["SimpleScalingPolicyConfiguration" JSON..= simpleScalingPolicyConfiguration] (Prelude.catMaybes [(JSON..=) "Market" Prelude.<$> market]))) instance Property "Market" ScalingActionProperty where type PropertyType "Market" ScalingActionProperty = Value Prelude.Text set newValue ScalingActionProperty {..} = ScalingActionProperty {market = Prelude.pure newValue, ..} instance Property "SimpleScalingPolicyConfiguration" ScalingActionProperty where type PropertyType "SimpleScalingPolicyConfiguration" ScalingActionProperty = SimpleScalingPolicyConfigurationProperty set newValue ScalingActionProperty {..} = ScalingActionProperty {simpleScalingPolicyConfiguration = newValue, ..}