{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.CloudFormation.DeleteStack
(
deleteStack
, DeleteStack
, dsRetainResources
, dsStackName
, deleteStackResponse
, DeleteStackResponse
) where
import Network.AWS.CloudFormation.Types
import Network.AWS.CloudFormation.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DeleteStack = DeleteStack'
{ _dsRetainResources :: !(Maybe [Text])
, _dsStackName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
deleteStack
:: Text
-> DeleteStack
deleteStack pStackName_ =
DeleteStack'
{ _dsRetainResources = Nothing
, _dsStackName = pStackName_
}
dsRetainResources :: Lens' DeleteStack [Text]
dsRetainResources = lens _dsRetainResources (\ s a -> s{_dsRetainResources = a}) . _Default . _Coerce;
dsStackName :: Lens' DeleteStack Text
dsStackName = lens _dsStackName (\ s a -> s{_dsStackName = a});
instance AWSRequest DeleteStack where
type Rs DeleteStack = DeleteStackResponse
request = postQuery cloudFormation
response = receiveNull DeleteStackResponse'
instance Hashable DeleteStack
instance NFData DeleteStack
instance ToHeaders DeleteStack where
toHeaders = const mempty
instance ToPath DeleteStack where
toPath = const "/"
instance ToQuery DeleteStack where
toQuery DeleteStack'{..}
= mconcat
["Action" =: ("DeleteStack" :: ByteString),
"Version" =: ("2010-05-15" :: ByteString),
"RetainResources" =:
toQuery
(toQueryList "member" <$> _dsRetainResources),
"StackName" =: _dsStackName]
data DeleteStackResponse =
DeleteStackResponse'
deriving (Eq,Read,Show,Data,Typeable,Generic)
deleteStackResponse
:: DeleteStackResponse
deleteStackResponse = DeleteStackResponse'
instance NFData DeleteStackResponse