stratosphere-0.4.3: library-gen/Stratosphere/ResourceProperties/EMRInstanceGroupConfigScalingConstraints.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html
module Stratosphere.ResourceProperties.EMRInstanceGroupConfigScalingConstraints where
import Control.Lens hiding ((.=))
import Data.Aeson
import Data.Maybe (catMaybes)
import Data.Monoid (mempty)
import Data.Text
import Stratosphere.Values
-- | Full data type definition for EMRInstanceGroupConfigScalingConstraints.
-- See 'emrInstanceGroupConfigScalingConstraints' for a more convenient
-- constructor.
data EMRInstanceGroupConfigScalingConstraints =
EMRInstanceGroupConfigScalingConstraints
{ _eMRInstanceGroupConfigScalingConstraintsMaxCapacity :: Val Integer'
, _eMRInstanceGroupConfigScalingConstraintsMinCapacity :: Val Integer'
} deriving (Show, Eq)
instance ToJSON EMRInstanceGroupConfigScalingConstraints where
toJSON EMRInstanceGroupConfigScalingConstraints{..} =
object $
catMaybes
[ Just ("MaxCapacity" .= _eMRInstanceGroupConfigScalingConstraintsMaxCapacity)
, Just ("MinCapacity" .= _eMRInstanceGroupConfigScalingConstraintsMinCapacity)
]
instance FromJSON EMRInstanceGroupConfigScalingConstraints where
parseJSON (Object obj) =
EMRInstanceGroupConfigScalingConstraints <$>
obj .: "MaxCapacity" <*>
obj .: "MinCapacity"
parseJSON _ = mempty
-- | Constructor for 'EMRInstanceGroupConfigScalingConstraints' containing
-- required fields as arguments.
emrInstanceGroupConfigScalingConstraints
:: Val Integer' -- ^ 'emrigcscMaxCapacity'
-> Val Integer' -- ^ 'emrigcscMinCapacity'
-> EMRInstanceGroupConfigScalingConstraints
emrInstanceGroupConfigScalingConstraints maxCapacityarg minCapacityarg =
EMRInstanceGroupConfigScalingConstraints
{ _eMRInstanceGroupConfigScalingConstraintsMaxCapacity = maxCapacityarg
, _eMRInstanceGroupConfigScalingConstraintsMinCapacity = minCapacityarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html#cfn-elasticmapreduce-instancegroupconfig-scalingconstraints-maxcapacity
emrigcscMaxCapacity :: Lens' EMRInstanceGroupConfigScalingConstraints (Val Integer')
emrigcscMaxCapacity = lens _eMRInstanceGroupConfigScalingConstraintsMaxCapacity (\s a -> s { _eMRInstanceGroupConfigScalingConstraintsMaxCapacity = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html#cfn-elasticmapreduce-instancegroupconfig-scalingconstraints-mincapacity
emrigcscMinCapacity :: Lens' EMRInstanceGroupConfigScalingConstraints (Val Integer')
emrigcscMinCapacity = lens _eMRInstanceGroupConfigScalingConstraintsMinCapacity (\s a -> s { _eMRInstanceGroupConfigScalingConstraintsMinCapacity = a })