module Network.AWS.ElastiCache.CopySnapshot
(
copySnapshot
, CopySnapshot
, csSourceSnapshotName
, csTargetSnapshotName
, copySnapshotResponse
, CopySnapshotResponse
, csrsSnapshot
, csrsResponseStatus
) 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
data CopySnapshot = CopySnapshot'
{ _csSourceSnapshotName :: !Text
, _csTargetSnapshotName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
copySnapshot
:: Text
-> Text
-> CopySnapshot
copySnapshot pSourceSnapshotName_ pTargetSnapshotName_ =
CopySnapshot'
{ _csSourceSnapshotName = pSourceSnapshotName_
, _csTargetSnapshotName = pTargetSnapshotName_
}
csSourceSnapshotName :: Lens' CopySnapshot Text
csSourceSnapshotName = lens _csSourceSnapshotName (\ s a -> s{_csSourceSnapshotName = a});
csTargetSnapshotName :: Lens' CopySnapshot Text
csTargetSnapshotName = lens _csTargetSnapshotName (\ s a -> s{_csTargetSnapshotName = a});
instance AWSRequest CopySnapshot where
type Rs CopySnapshot = CopySnapshotResponse
request = postQuery elastiCache
response
= receiveXMLWrapper "CopySnapshotResult"
(\ s h x ->
CopySnapshotResponse' <$>
(x .@? "Snapshot") <*> (pure (fromEnum s)))
instance Hashable CopySnapshot
instance NFData CopySnapshot
instance ToHeaders CopySnapshot where
toHeaders = const mempty
instance ToPath CopySnapshot where
toPath = const "/"
instance ToQuery CopySnapshot where
toQuery CopySnapshot'{..}
= mconcat
["Action" =: ("CopySnapshot" :: ByteString),
"Version" =: ("2015-02-02" :: ByteString),
"SourceSnapshotName" =: _csSourceSnapshotName,
"TargetSnapshotName" =: _csTargetSnapshotName]
data CopySnapshotResponse = CopySnapshotResponse'
{ _csrsSnapshot :: !(Maybe Snapshot)
, _csrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
copySnapshotResponse
:: Int
-> CopySnapshotResponse
copySnapshotResponse pResponseStatus_ =
CopySnapshotResponse'
{ _csrsSnapshot = Nothing
, _csrsResponseStatus = pResponseStatus_
}
csrsSnapshot :: Lens' CopySnapshotResponse (Maybe Snapshot)
csrsSnapshot = lens _csrsSnapshot (\ s a -> s{_csrsSnapshot = a});
csrsResponseStatus :: Lens' CopySnapshotResponse Int
csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a});
instance NFData CopySnapshotResponse