module Stratosphere.ResourceProperties.AutoScalingEBSBlockDevice where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data AutoScalingEBSBlockDevice =
AutoScalingEBSBlockDevice
{ _autoScalingEBSBlockDeviceDeleteOnTermination :: Maybe (Val Bool')
, _autoScalingEBSBlockDeviceEncrypted :: Maybe (Val Bool')
, _autoScalingEBSBlockDeviceIops :: Maybe (Val Integer')
, _autoScalingEBSBlockDeviceSnapshotId :: Maybe (Val Text)
, _autoScalingEBSBlockDeviceVolumeSize :: Maybe (Val Integer')
, _autoScalingEBSBlockDeviceVolumeType :: Maybe (Val Text)
} deriving (Show, Generic)
instance ToJSON AutoScalingEBSBlockDevice where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }
instance FromJSON AutoScalingEBSBlockDevice where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 26, omitNothingFields = True }
autoScalingEBSBlockDevice
:: AutoScalingEBSBlockDevice
autoScalingEBSBlockDevice =
AutoScalingEBSBlockDevice
{ _autoScalingEBSBlockDeviceDeleteOnTermination = Nothing
, _autoScalingEBSBlockDeviceEncrypted = Nothing
, _autoScalingEBSBlockDeviceIops = Nothing
, _autoScalingEBSBlockDeviceSnapshotId = Nothing
, _autoScalingEBSBlockDeviceVolumeSize = Nothing
, _autoScalingEBSBlockDeviceVolumeType = Nothing
}
asebsbdDeleteOnTermination :: Lens' AutoScalingEBSBlockDevice (Maybe (Val Bool'))
asebsbdDeleteOnTermination = lens _autoScalingEBSBlockDeviceDeleteOnTermination (\s a -> s { _autoScalingEBSBlockDeviceDeleteOnTermination = a })
asebsbdEncrypted :: Lens' AutoScalingEBSBlockDevice (Maybe (Val Bool'))
asebsbdEncrypted = lens _autoScalingEBSBlockDeviceEncrypted (\s a -> s { _autoScalingEBSBlockDeviceEncrypted = a })
asebsbdIops :: Lens' AutoScalingEBSBlockDevice (Maybe (Val Integer'))
asebsbdIops = lens _autoScalingEBSBlockDeviceIops (\s a -> s { _autoScalingEBSBlockDeviceIops = a })
asebsbdSnapshotId :: Lens' AutoScalingEBSBlockDevice (Maybe (Val Text))
asebsbdSnapshotId = lens _autoScalingEBSBlockDeviceSnapshotId (\s a -> s { _autoScalingEBSBlockDeviceSnapshotId = a })
asebsbdVolumeSize :: Lens' AutoScalingEBSBlockDevice (Maybe (Val Integer'))
asebsbdVolumeSize = lens _autoScalingEBSBlockDeviceVolumeSize (\s a -> s { _autoScalingEBSBlockDeviceVolumeSize = a })
asebsbdVolumeType :: Lens' AutoScalingEBSBlockDevice (Maybe (Val Text))
asebsbdVolumeType = lens _autoScalingEBSBlockDeviceVolumeType (\s a -> s { _autoScalingEBSBlockDeviceVolumeType = a })