{-# 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.ElastiCache.DeleteSnapshot
(
deleteSnapshot
, DeleteSnapshot
, dSnapshotName
, deleteSnapshotResponse
, DeleteSnapshotResponse
, dsrsSnapshot
, dsrsResponseStatus
) where
import Network.AWS.ElastiCache.Types
import Network.AWS.ElastiCache.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype DeleteSnapshot = DeleteSnapshot'
{ _dSnapshotName :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
deleteSnapshot
:: Text
-> DeleteSnapshot
deleteSnapshot pSnapshotName_ =
DeleteSnapshot' {_dSnapshotName = pSnapshotName_}
dSnapshotName :: Lens' DeleteSnapshot Text
dSnapshotName = lens _dSnapshotName (\ s a -> s{_dSnapshotName = a})
instance AWSRequest DeleteSnapshot where
type Rs DeleteSnapshot = DeleteSnapshotResponse
request = postQuery elastiCache
response
= receiveXMLWrapper "DeleteSnapshotResult"
(\ s h x ->
DeleteSnapshotResponse' <$>
(x .@? "Snapshot") <*> (pure (fromEnum s)))
instance Hashable DeleteSnapshot where
instance NFData DeleteSnapshot where
instance ToHeaders DeleteSnapshot where
toHeaders = const mempty
instance ToPath DeleteSnapshot where
toPath = const "/"
instance ToQuery DeleteSnapshot where
toQuery DeleteSnapshot'{..}
= mconcat
["Action" =: ("DeleteSnapshot" :: ByteString),
"Version" =: ("2015-02-02" :: ByteString),
"SnapshotName" =: _dSnapshotName]
data DeleteSnapshotResponse = DeleteSnapshotResponse'
{ _dsrsSnapshot :: !(Maybe Snapshot)
, _dsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
deleteSnapshotResponse
:: Int
-> DeleteSnapshotResponse
deleteSnapshotResponse pResponseStatus_ =
DeleteSnapshotResponse'
{_dsrsSnapshot = Nothing, _dsrsResponseStatus = pResponseStatus_}
dsrsSnapshot :: Lens' DeleteSnapshotResponse (Maybe Snapshot)
dsrsSnapshot = lens _dsrsSnapshot (\ s a -> s{_dsrsSnapshot = a})
dsrsResponseStatus :: Lens' DeleteSnapshotResponse Int
dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a})
instance NFData DeleteSnapshotResponse where