stratosphere-0.15.2: library-gen/Stratosphere/ResourceProperties/EC2InstanceCreditSpecification.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html
module Stratosphere.ResourceProperties.EC2InstanceCreditSpecification where
import Stratosphere.ResourceImports
-- | Full data type definition for EC2InstanceCreditSpecification. See
-- 'ec2InstanceCreditSpecification' for a more convenient constructor.
data EC2InstanceCreditSpecification =
EC2InstanceCreditSpecification
{ _eC2InstanceCreditSpecificationCPUCredits :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON EC2InstanceCreditSpecification where
toJSON EC2InstanceCreditSpecification{..} =
object $
catMaybes
[ fmap (("CPUCredits",) . toJSON) _eC2InstanceCreditSpecificationCPUCredits
]
instance FromJSON EC2InstanceCreditSpecification where
parseJSON (Object obj) =
EC2InstanceCreditSpecification <$>
(obj .:? "CPUCredits")
parseJSON _ = mempty
-- | Constructor for 'EC2InstanceCreditSpecification' containing required
-- fields as arguments.
ec2InstanceCreditSpecification
:: EC2InstanceCreditSpecification
ec2InstanceCreditSpecification =
EC2InstanceCreditSpecification
{ _eC2InstanceCreditSpecificationCPUCredits = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html#cfn-ec2-instance-creditspecification-cpucredits
ecicsCPUCredits :: Lens' EC2InstanceCreditSpecification (Maybe (Val Text))
ecicsCPUCredits = lens _eC2InstanceCreditSpecificationCPUCredits (\s a -> s { _eC2InstanceCreditSpecificationCPUCredits = a })