module Stratosphere.ResourceProperties.AutoScalingBlockDeviceMapping where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.AutoScalingEBSBlockDevice
data AutoScalingBlockDeviceMapping =
AutoScalingBlockDeviceMapping
{ _autoScalingBlockDeviceMappingDeviceName :: Val Text
, _autoScalingBlockDeviceMappingEbs :: Maybe AutoScalingEBSBlockDevice
, _autoScalingBlockDeviceMappingNoDevice :: Maybe (Val Bool')
, _autoScalingBlockDeviceMappingVirtualName :: Maybe (Val Text)
} deriving (Show, Generic)
instance ToJSON AutoScalingBlockDeviceMapping where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }
instance FromJSON AutoScalingBlockDeviceMapping where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 30, omitNothingFields = True }
autoScalingBlockDeviceMapping
:: Val Text
-> AutoScalingBlockDeviceMapping
autoScalingBlockDeviceMapping deviceNamearg =
AutoScalingBlockDeviceMapping
{ _autoScalingBlockDeviceMappingDeviceName = deviceNamearg
, _autoScalingBlockDeviceMappingEbs = Nothing
, _autoScalingBlockDeviceMappingNoDevice = Nothing
, _autoScalingBlockDeviceMappingVirtualName = Nothing
}
asbdmDeviceName :: Lens' AutoScalingBlockDeviceMapping (Val Text)
asbdmDeviceName = lens _autoScalingBlockDeviceMappingDeviceName (\s a -> s { _autoScalingBlockDeviceMappingDeviceName = a })
asbdmEbs :: Lens' AutoScalingBlockDeviceMapping (Maybe AutoScalingEBSBlockDevice)
asbdmEbs = lens _autoScalingBlockDeviceMappingEbs (\s a -> s { _autoScalingBlockDeviceMappingEbs = a })
asbdmNoDevice :: Lens' AutoScalingBlockDeviceMapping (Maybe (Val Bool'))
asbdmNoDevice = lens _autoScalingBlockDeviceMappingNoDevice (\s a -> s { _autoScalingBlockDeviceMappingNoDevice = a })
asbdmVirtualName :: Lens' AutoScalingBlockDeviceMapping (Maybe (Val Text))
asbdmVirtualName = lens _autoScalingBlockDeviceMappingVirtualName (\s a -> s { _autoScalingBlockDeviceMappingVirtualName = a })