stratosphere-0.52.0: library-gen/Stratosphere/ResourceProperties/ImageBuilderImageRecipeInstanceBlockDeviceMapping.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html
module Stratosphere.ResourceProperties.ImageBuilderImageRecipeInstanceBlockDeviceMapping where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
-- | Full data type definition for
-- ImageBuilderImageRecipeInstanceBlockDeviceMapping. See
-- 'imageBuilderImageRecipeInstanceBlockDeviceMapping' for a more convenient
-- constructor.
data ImageBuilderImageRecipeInstanceBlockDeviceMapping =
ImageBuilderImageRecipeInstanceBlockDeviceMapping
{ _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName :: Maybe (Val Text)
, _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs :: Maybe ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification
, _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice :: Maybe (Val Text)
, _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON ImageBuilderImageRecipeInstanceBlockDeviceMapping where
toJSON ImageBuilderImageRecipeInstanceBlockDeviceMapping{..} =
object $
catMaybes
[ fmap (("DeviceName",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName
, fmap (("Ebs",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs
, fmap (("NoDevice",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice
, fmap (("VirtualName",) . toJSON) _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName
]
-- | Constructor for 'ImageBuilderImageRecipeInstanceBlockDeviceMapping'
-- containing required fields as arguments.
imageBuilderImageRecipeInstanceBlockDeviceMapping
:: ImageBuilderImageRecipeInstanceBlockDeviceMapping
imageBuilderImageRecipeInstanceBlockDeviceMapping =
ImageBuilderImageRecipeInstanceBlockDeviceMapping
{ _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName = Nothing
, _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs = Nothing
, _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice = Nothing
, _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-devicename
ibiribdmDeviceName :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe (Val Text))
ibiribdmDeviceName = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingDeviceName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-ebs
ibiribdmEbs :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe ImageBuilderImageRecipeEbsInstanceBlockDeviceSpecification)
ibiribdmEbs = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingEbs = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-nodevice
ibiribdmNoDevice :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe (Val Text))
ibiribdmNoDevice = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingNoDevice = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-virtualname
ibiribdmVirtualName :: Lens' ImageBuilderImageRecipeInstanceBlockDeviceMapping (Maybe (Val Text))
ibiribdmVirtualName = lens _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName (\s a -> s { _imageBuilderImageRecipeInstanceBlockDeviceMappingVirtualName = a })