module Network.AWS.ElastiCache.CreateCacheSecurityGroup
(
CreateCacheSecurityGroup
, createCacheSecurityGroup
, ccsgCacheSecurityGroupName
, ccsgDescription
, CreateCacheSecurityGroupResponse
, createCacheSecurityGroupResponse
, ccsgrCacheSecurityGroup
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ElastiCache.Types
import qualified GHC.Exts
data CreateCacheSecurityGroup = CreateCacheSecurityGroup
{ _ccsgCacheSecurityGroupName :: Text
, _ccsgDescription :: Text
} deriving (Eq, Ord, Show)
createCacheSecurityGroup :: Text
-> Text
-> CreateCacheSecurityGroup
createCacheSecurityGroup p1 p2 = CreateCacheSecurityGroup
{ _ccsgCacheSecurityGroupName = p1
, _ccsgDescription = p2
}
ccsgCacheSecurityGroupName :: Lens' CreateCacheSecurityGroup Text
ccsgCacheSecurityGroupName =
lens _ccsgCacheSecurityGroupName
(\s a -> s { _ccsgCacheSecurityGroupName = a })
ccsgDescription :: Lens' CreateCacheSecurityGroup Text
ccsgDescription = lens _ccsgDescription (\s a -> s { _ccsgDescription = a })
newtype CreateCacheSecurityGroupResponse = CreateCacheSecurityGroupResponse
{ _ccsgrCacheSecurityGroup :: Maybe CacheSecurityGroup
} deriving (Eq, Show)
createCacheSecurityGroupResponse :: CreateCacheSecurityGroupResponse
createCacheSecurityGroupResponse = CreateCacheSecurityGroupResponse
{ _ccsgrCacheSecurityGroup = Nothing
}
ccsgrCacheSecurityGroup :: Lens' CreateCacheSecurityGroupResponse (Maybe CacheSecurityGroup)
ccsgrCacheSecurityGroup =
lens _ccsgrCacheSecurityGroup (\s a -> s { _ccsgrCacheSecurityGroup = a })
instance ToPath CreateCacheSecurityGroup where
toPath = const "/"
instance ToQuery CreateCacheSecurityGroup where
toQuery CreateCacheSecurityGroup{..} = mconcat
[ "CacheSecurityGroupName" =? _ccsgCacheSecurityGroupName
, "Description" =? _ccsgDescription
]
instance ToHeaders CreateCacheSecurityGroup
instance AWSRequest CreateCacheSecurityGroup where
type Sv CreateCacheSecurityGroup = ElastiCache
type Rs CreateCacheSecurityGroup = CreateCacheSecurityGroupResponse
request = post "CreateCacheSecurityGroup"
response = xmlResponse
instance FromXML CreateCacheSecurityGroupResponse where
parseXML = withElement "CreateCacheSecurityGroupResult" $ \x -> CreateCacheSecurityGroupResponse
<$> x .@? "CacheSecurityGroup"