module Network.AWS.Budgets.UpdateSubscriber
(
updateSubscriber
, UpdateSubscriber
, usAccountId
, usBudgetName
, usNotification
, usOldSubscriber
, usNewSubscriber
, updateSubscriberResponse
, UpdateSubscriberResponse
, usrsResponseStatus
) where
import Network.AWS.Budgets.Types
import Network.AWS.Budgets.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateSubscriber = UpdateSubscriber'
{ _usAccountId :: !Text
, _usBudgetName :: !Text
, _usNotification :: !Notification
, _usOldSubscriber :: !Subscriber
, _usNewSubscriber :: !Subscriber
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateSubscriber
:: Text
-> Text
-> Notification
-> Subscriber
-> Subscriber
-> UpdateSubscriber
updateSubscriber pAccountId_ pBudgetName_ pNotification_ pOldSubscriber_ pNewSubscriber_ =
UpdateSubscriber'
{ _usAccountId = pAccountId_
, _usBudgetName = pBudgetName_
, _usNotification = pNotification_
, _usOldSubscriber = pOldSubscriber_
, _usNewSubscriber = pNewSubscriber_
}
usAccountId :: Lens' UpdateSubscriber Text
usAccountId = lens _usAccountId (\ s a -> s{_usAccountId = a});
usBudgetName :: Lens' UpdateSubscriber Text
usBudgetName = lens _usBudgetName (\ s a -> s{_usBudgetName = a});
usNotification :: Lens' UpdateSubscriber Notification
usNotification = lens _usNotification (\ s a -> s{_usNotification = a});
usOldSubscriber :: Lens' UpdateSubscriber Subscriber
usOldSubscriber = lens _usOldSubscriber (\ s a -> s{_usOldSubscriber = a});
usNewSubscriber :: Lens' UpdateSubscriber Subscriber
usNewSubscriber = lens _usNewSubscriber (\ s a -> s{_usNewSubscriber = a});
instance AWSRequest UpdateSubscriber where
type Rs UpdateSubscriber = UpdateSubscriberResponse
request = postJSON budgets
response
= receiveEmpty
(\ s h x ->
UpdateSubscriberResponse' <$> (pure (fromEnum s)))
instance Hashable UpdateSubscriber where
instance NFData UpdateSubscriber where
instance ToHeaders UpdateSubscriber where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSBudgetServiceGateway.UpdateSubscriber" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateSubscriber where
toJSON UpdateSubscriber'{..}
= object
(catMaybes
[Just ("AccountId" .= _usAccountId),
Just ("BudgetName" .= _usBudgetName),
Just ("Notification" .= _usNotification),
Just ("OldSubscriber" .= _usOldSubscriber),
Just ("NewSubscriber" .= _usNewSubscriber)])
instance ToPath UpdateSubscriber where
toPath = const "/"
instance ToQuery UpdateSubscriber where
toQuery = const mempty
newtype UpdateSubscriberResponse = UpdateSubscriberResponse'
{ _usrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateSubscriberResponse
:: Int
-> UpdateSubscriberResponse
updateSubscriberResponse pResponseStatus_ =
UpdateSubscriberResponse' {_usrsResponseStatus = pResponseStatus_}
usrsResponseStatus :: Lens' UpdateSubscriberResponse Int
usrsResponseStatus = lens _usrsResponseStatus (\ s a -> s{_usrsResponseStatus = a});
instance NFData UpdateSubscriberResponse where