stratosphere-0.54.0: library-gen/Stratosphere/Resources/EC2PrefixList.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html
module Stratosphere.Resources.EC2PrefixList where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.EC2PrefixListEntry
import Stratosphere.ResourceProperties.Tag
-- | Full data type definition for EC2PrefixList. See 'ec2PrefixList' for a
-- more convenient constructor.
data EC2PrefixList =
EC2PrefixList
{ _eC2PrefixListAddressFamily :: Val Text
, _eC2PrefixListEntries :: Maybe [EC2PrefixListEntry]
, _eC2PrefixListMaxEntries :: Val Integer
, _eC2PrefixListPrefixListName :: Val Text
, _eC2PrefixListTags :: Maybe [Tag]
} deriving (Show, Eq)
instance ToResourceProperties EC2PrefixList where
toResourceProperties EC2PrefixList{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::EC2::PrefixList"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ (Just . ("AddressFamily",) . toJSON) _eC2PrefixListAddressFamily
, fmap (("Entries",) . toJSON) _eC2PrefixListEntries
, (Just . ("MaxEntries",) . toJSON) _eC2PrefixListMaxEntries
, (Just . ("PrefixListName",) . toJSON) _eC2PrefixListPrefixListName
, fmap (("Tags",) . toJSON) _eC2PrefixListTags
]
}
-- | Constructor for 'EC2PrefixList' containing required fields as arguments.
ec2PrefixList
:: Val Text -- ^ 'ecplAddressFamily'
-> Val Integer -- ^ 'ecplMaxEntries'
-> Val Text -- ^ 'ecplPrefixListName'
-> EC2PrefixList
ec2PrefixList addressFamilyarg maxEntriesarg prefixListNamearg =
EC2PrefixList
{ _eC2PrefixListAddressFamily = addressFamilyarg
, _eC2PrefixListEntries = Nothing
, _eC2PrefixListMaxEntries = maxEntriesarg
, _eC2PrefixListPrefixListName = prefixListNamearg
, _eC2PrefixListTags = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-addressfamily
ecplAddressFamily :: Lens' EC2PrefixList (Val Text)
ecplAddressFamily = lens _eC2PrefixListAddressFamily (\s a -> s { _eC2PrefixListAddressFamily = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-entries
ecplEntries :: Lens' EC2PrefixList (Maybe [EC2PrefixListEntry])
ecplEntries = lens _eC2PrefixListEntries (\s a -> s { _eC2PrefixListEntries = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-maxentries
ecplMaxEntries :: Lens' EC2PrefixList (Val Integer)
ecplMaxEntries = lens _eC2PrefixListMaxEntries (\s a -> s { _eC2PrefixListMaxEntries = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-prefixlistname
ecplPrefixListName :: Lens' EC2PrefixList (Val Text)
ecplPrefixListName = lens _eC2PrefixListPrefixListName (\s a -> s { _eC2PrefixListPrefixListName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-tags
ecplTags :: Lens' EC2PrefixList (Maybe [Tag])
ecplTags = lens _eC2PrefixListTags (\s a -> s { _eC2PrefixListTags = a })