stratosphere-0.2.0: library-gen/Stratosphere/Resources/CacheSubnetGroup.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | Creates a cache subnet group. For more information about cache subnet
-- groups, go to Cache Subnet Groups in the Amazon ElastiCache User Guide or
-- go to CreateCacheSubnetGroup in the Amazon ElastiCache API Reference Guide.
-- When you specify an AWS::ElastiCache::SubnetGroup type as an argument to
-- the Ref function, AWS CloudFormation returns the name of the cache subnet
-- group.
module Stratosphere.Resources.CacheSubnetGroup where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
-- | Full data type definition for CacheSubnetGroup. See 'cacheSubnetGroup'
-- for a more convenient constructor.
data CacheSubnetGroup =
CacheSubnetGroup
{ _cacheSubnetGroupDescription :: Val Text
, _cacheSubnetGroupSubnetIds :: [Val Text]
} deriving (Show, Generic)
instance ToJSON CacheSubnetGroup where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
instance FromJSON CacheSubnetGroup where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
-- | Constructor for 'CacheSubnetGroup' containing required fields as
-- arguments.
cacheSubnetGroup
:: Val Text -- ^ 'csgDescription'
-> [Val Text] -- ^ 'csgSubnetIds'
-> CacheSubnetGroup
cacheSubnetGroup descriptionarg subnetIdsarg =
CacheSubnetGroup
{ _cacheSubnetGroupDescription = descriptionarg
, _cacheSubnetGroupSubnetIds = subnetIdsarg
}
-- | The description for the cache subnet group.
csgDescription :: Lens' CacheSubnetGroup (Val Text)
csgDescription = lens _cacheSubnetGroupDescription (\s a -> s { _cacheSubnetGroupDescription = a })
-- | The Amazon EC2 subnet IDs for the cache subnet group.
csgSubnetIds :: Lens' CacheSubnetGroup [Val Text]
csgSubnetIds = lens _cacheSubnetGroupSubnetIds (\s a -> s { _cacheSubnetGroupSubnetIds = a })