{-# 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.OpsWorksCM.CreateBackup
(
createBackup
, CreateBackup
, cbDescription
, cbServerName
, createBackupResponse
, CreateBackupResponse
, cbrsBackup
, cbrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.OpsWorksCM.Types
import Network.AWS.OpsWorksCM.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateBackup = CreateBackup'
{ _cbDescription :: !(Maybe Text)
, _cbServerName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createBackup
:: Text
-> CreateBackup
createBackup pServerName_ =
CreateBackup' {_cbDescription = Nothing, _cbServerName = pServerName_}
cbDescription :: Lens' CreateBackup (Maybe Text)
cbDescription = lens _cbDescription (\ s a -> s{_cbDescription = a})
cbServerName :: Lens' CreateBackup Text
cbServerName = lens _cbServerName (\ s a -> s{_cbServerName = a})
instance AWSRequest CreateBackup where
type Rs CreateBackup = CreateBackupResponse
request = postJSON opsWorksCM
response
= receiveJSON
(\ s h x ->
CreateBackupResponse' <$>
(x .?> "Backup") <*> (pure (fromEnum s)))
instance Hashable CreateBackup where
instance NFData CreateBackup where
instance ToHeaders CreateBackup where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("OpsWorksCM_V2016_11_01.CreateBackup" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateBackup where
toJSON CreateBackup'{..}
= object
(catMaybes
[("Description" .=) <$> _cbDescription,
Just ("ServerName" .= _cbServerName)])
instance ToPath CreateBackup where
toPath = const "/"
instance ToQuery CreateBackup where
toQuery = const mempty
data CreateBackupResponse = CreateBackupResponse'
{ _cbrsBackup :: !(Maybe Backup)
, _cbrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createBackupResponse
:: Int
-> CreateBackupResponse
createBackupResponse pResponseStatus_ =
CreateBackupResponse'
{_cbrsBackup = Nothing, _cbrsResponseStatus = pResponseStatus_}
cbrsBackup :: Lens' CreateBackupResponse (Maybe Backup)
cbrsBackup = lens _cbrsBackup (\ s a -> s{_cbrsBackup = a})
cbrsResponseStatus :: Lens' CreateBackupResponse Int
cbrsResponseStatus = lens _cbrsResponseStatus (\ s a -> s{_cbrsResponseStatus = a})
instance NFData CreateBackupResponse where