module Stratosphere.ResourceProperties.AutoScalingTags where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data AutoScalingTags =
AutoScalingTags
{ _autoScalingTagsKey :: Val Text
, _autoScalingTagsValue :: Val Text
, _autoScalingTagsPropagateAtLaunch :: Val Bool'
} deriving (Show, Generic)
instance ToJSON AutoScalingTags where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }
instance FromJSON AutoScalingTags where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }
autoScalingTags
:: Val Text
-> Val Text
-> Val Bool'
-> AutoScalingTags
autoScalingTags keyarg valuearg propagateAtLauncharg =
AutoScalingTags
{ _autoScalingTagsKey = keyarg
, _autoScalingTagsValue = valuearg
, _autoScalingTagsPropagateAtLaunch = propagateAtLauncharg
}
astKey :: Lens' AutoScalingTags (Val Text)
astKey = lens _autoScalingTagsKey (\s a -> s { _autoScalingTagsKey = a })
astValue :: Lens' AutoScalingTags (Val Text)
astValue = lens _autoScalingTagsValue (\s a -> s { _autoScalingTagsValue = a })
astPropagateAtLaunch :: Lens' AutoScalingTags (Val Bool')
astPropagateAtLaunch = lens _autoScalingTagsPropagateAtLaunch (\s a -> s { _autoScalingTagsPropagateAtLaunch = a })