stratosphere-0.52.0: library-gen/Stratosphere/Resources/ImageBuilderImageRecipe.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html
module Stratosphere.Resources.ImageBuilderImageRecipe where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.ImageBuilderImageRecipeInstanceBlockDeviceMapping
import Stratosphere.ResourceProperties.ImageBuilderImageRecipeComponentConfiguration
-- | Full data type definition for ImageBuilderImageRecipe. See
-- 'imageBuilderImageRecipe' for a more convenient constructor.
data ImageBuilderImageRecipe =
ImageBuilderImageRecipe
{ _imageBuilderImageRecipeBlockDeviceMappings :: Maybe [ImageBuilderImageRecipeInstanceBlockDeviceMapping]
, _imageBuilderImageRecipeComponents :: [ImageBuilderImageRecipeComponentConfiguration]
, _imageBuilderImageRecipeDescription :: Maybe (Val Text)
, _imageBuilderImageRecipeName :: Val Text
, _imageBuilderImageRecipeParentImage :: Val Text
, _imageBuilderImageRecipeTags :: Maybe Object
, _imageBuilderImageRecipeVersion :: Val Text
} deriving (Show, Eq)
instance ToResourceProperties ImageBuilderImageRecipe where
toResourceProperties ImageBuilderImageRecipe{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::ImageBuilder::ImageRecipe"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("BlockDeviceMappings",) . toJSON) _imageBuilderImageRecipeBlockDeviceMappings
, (Just . ("Components",) . toJSON) _imageBuilderImageRecipeComponents
, fmap (("Description",) . toJSON) _imageBuilderImageRecipeDescription
, (Just . ("Name",) . toJSON) _imageBuilderImageRecipeName
, (Just . ("ParentImage",) . toJSON) _imageBuilderImageRecipeParentImage
, fmap (("Tags",) . toJSON) _imageBuilderImageRecipeTags
, (Just . ("Version",) . toJSON) _imageBuilderImageRecipeVersion
]
}
-- | Constructor for 'ImageBuilderImageRecipe' containing required fields as
-- arguments.
imageBuilderImageRecipe
:: [ImageBuilderImageRecipeComponentConfiguration] -- ^ 'ibirComponents'
-> Val Text -- ^ 'ibirName'
-> Val Text -- ^ 'ibirParentImage'
-> Val Text -- ^ 'ibirVersion'
-> ImageBuilderImageRecipe
imageBuilderImageRecipe componentsarg namearg parentImagearg versionarg =
ImageBuilderImageRecipe
{ _imageBuilderImageRecipeBlockDeviceMappings = Nothing
, _imageBuilderImageRecipeComponents = componentsarg
, _imageBuilderImageRecipeDescription = Nothing
, _imageBuilderImageRecipeName = namearg
, _imageBuilderImageRecipeParentImage = parentImagearg
, _imageBuilderImageRecipeTags = Nothing
, _imageBuilderImageRecipeVersion = versionarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-blockdevicemappings
ibirBlockDeviceMappings :: Lens' ImageBuilderImageRecipe (Maybe [ImageBuilderImageRecipeInstanceBlockDeviceMapping])
ibirBlockDeviceMappings = lens _imageBuilderImageRecipeBlockDeviceMappings (\s a -> s { _imageBuilderImageRecipeBlockDeviceMappings = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-components
ibirComponents :: Lens' ImageBuilderImageRecipe [ImageBuilderImageRecipeComponentConfiguration]
ibirComponents = lens _imageBuilderImageRecipeComponents (\s a -> s { _imageBuilderImageRecipeComponents = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-description
ibirDescription :: Lens' ImageBuilderImageRecipe (Maybe (Val Text))
ibirDescription = lens _imageBuilderImageRecipeDescription (\s a -> s { _imageBuilderImageRecipeDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-name
ibirName :: Lens' ImageBuilderImageRecipe (Val Text)
ibirName = lens _imageBuilderImageRecipeName (\s a -> s { _imageBuilderImageRecipeName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-parentimage
ibirParentImage :: Lens' ImageBuilderImageRecipe (Val Text)
ibirParentImage = lens _imageBuilderImageRecipeParentImage (\s a -> s { _imageBuilderImageRecipeParentImage = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-tags
ibirTags :: Lens' ImageBuilderImageRecipe (Maybe Object)
ibirTags = lens _imageBuilderImageRecipeTags (\s a -> s { _imageBuilderImageRecipeTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-version
ibirVersion :: Lens' ImageBuilderImageRecipe (Val Text)
ibirVersion = lens _imageBuilderImageRecipeVersion (\s a -> s { _imageBuilderImageRecipeVersion = a })