{-# 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.Pinpoint.UpdateCampaign
(
updateCampaign
, UpdateCampaign
, ucCampaignId
, ucApplicationId
, ucWriteCampaignRequest
, updateCampaignResponse
, UpdateCampaignResponse
, ucrsResponseStatus
, ucrsCampaignResponse
) where
import Network.AWS.Lens
import Network.AWS.Pinpoint.Types
import Network.AWS.Pinpoint.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateCampaign = UpdateCampaign'
{ _ucCampaignId :: !Text
, _ucApplicationId :: !Text
, _ucWriteCampaignRequest :: !WriteCampaignRequest
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateCampaign
:: Text
-> Text
-> WriteCampaignRequest
-> UpdateCampaign
updateCampaign pCampaignId_ pApplicationId_ pWriteCampaignRequest_ =
UpdateCampaign'
{ _ucCampaignId = pCampaignId_
, _ucApplicationId = pApplicationId_
, _ucWriteCampaignRequest = pWriteCampaignRequest_
}
ucCampaignId :: Lens' UpdateCampaign Text
ucCampaignId = lens _ucCampaignId (\ s a -> s{_ucCampaignId = a})
ucApplicationId :: Lens' UpdateCampaign Text
ucApplicationId = lens _ucApplicationId (\ s a -> s{_ucApplicationId = a})
ucWriteCampaignRequest :: Lens' UpdateCampaign WriteCampaignRequest
ucWriteCampaignRequest = lens _ucWriteCampaignRequest (\ s a -> s{_ucWriteCampaignRequest = a})
instance AWSRequest UpdateCampaign where
type Rs UpdateCampaign = UpdateCampaignResponse
request = putJSON pinpoint
response
= receiveJSON
(\ s h x ->
UpdateCampaignResponse' <$>
(pure (fromEnum s)) <*> (eitherParseJSON x))
instance Hashable UpdateCampaign where
instance NFData UpdateCampaign where
instance ToHeaders UpdateCampaign where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateCampaign where
toJSON UpdateCampaign'{..}
= object
(catMaybes
[Just
("WriteCampaignRequest" .= _ucWriteCampaignRequest)])
instance ToPath UpdateCampaign where
toPath UpdateCampaign'{..}
= mconcat
["/v1/apps/", toBS _ucApplicationId, "/campaigns/",
toBS _ucCampaignId]
instance ToQuery UpdateCampaign where
toQuery = const mempty
data UpdateCampaignResponse = UpdateCampaignResponse'
{ _ucrsResponseStatus :: !Int
, _ucrsCampaignResponse :: !CampaignResponse
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateCampaignResponse
:: Int
-> CampaignResponse
-> UpdateCampaignResponse
updateCampaignResponse pResponseStatus_ pCampaignResponse_ =
UpdateCampaignResponse'
{ _ucrsResponseStatus = pResponseStatus_
, _ucrsCampaignResponse = pCampaignResponse_
}
ucrsResponseStatus :: Lens' UpdateCampaignResponse Int
ucrsResponseStatus = lens _ucrsResponseStatus (\ s a -> s{_ucrsResponseStatus = a})
ucrsCampaignResponse :: Lens' UpdateCampaignResponse CampaignResponse
ucrsCampaignResponse = lens _ucrsCampaignResponse (\ s a -> s{_ucrsCampaignResponse = a})
instance NFData UpdateCampaignResponse where