{-# 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.CreateCampaign
(
createCampaign
, CreateCampaign
, ccApplicationId
, ccWriteCampaignRequest
, createCampaignResponse
, CreateCampaignResponse
, ccrsResponseStatus
, ccrsCampaignResponse
) 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 CreateCampaign = CreateCampaign'
{ _ccApplicationId :: !Text
, _ccWriteCampaignRequest :: !WriteCampaignRequest
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCampaign
:: Text
-> WriteCampaignRequest
-> CreateCampaign
createCampaign pApplicationId_ pWriteCampaignRequest_ =
CreateCampaign'
{ _ccApplicationId = pApplicationId_
, _ccWriteCampaignRequest = pWriteCampaignRequest_
}
ccApplicationId :: Lens' CreateCampaign Text
ccApplicationId = lens _ccApplicationId (\ s a -> s{_ccApplicationId = a})
ccWriteCampaignRequest :: Lens' CreateCampaign WriteCampaignRequest
ccWriteCampaignRequest = lens _ccWriteCampaignRequest (\ s a -> s{_ccWriteCampaignRequest = a})
instance AWSRequest CreateCampaign where
type Rs CreateCampaign = CreateCampaignResponse
request = postJSON pinpoint
response
= receiveJSON
(\ s h x ->
CreateCampaignResponse' <$>
(pure (fromEnum s)) <*> (eitherParseJSON x))
instance Hashable CreateCampaign where
instance NFData CreateCampaign where
instance ToHeaders CreateCampaign where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateCampaign where
toJSON CreateCampaign'{..}
= object
(catMaybes
[Just
("WriteCampaignRequest" .= _ccWriteCampaignRequest)])
instance ToPath CreateCampaign where
toPath CreateCampaign'{..}
= mconcat
["/v1/apps/", toBS _ccApplicationId, "/campaigns"]
instance ToQuery CreateCampaign where
toQuery = const mempty
data CreateCampaignResponse = CreateCampaignResponse'
{ _ccrsResponseStatus :: !Int
, _ccrsCampaignResponse :: !CampaignResponse
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCampaignResponse
:: Int
-> CampaignResponse
-> CreateCampaignResponse
createCampaignResponse pResponseStatus_ pCampaignResponse_ =
CreateCampaignResponse'
{ _ccrsResponseStatus = pResponseStatus_
, _ccrsCampaignResponse = pCampaignResponse_
}
ccrsResponseStatus :: Lens' CreateCampaignResponse Int
ccrsResponseStatus = lens _ccrsResponseStatus (\ s a -> s{_ccrsResponseStatus = a})
ccrsCampaignResponse :: Lens' CreateCampaignResponse CampaignResponse
ccrsCampaignResponse = lens _ccrsCampaignResponse (\ s a -> s{_ccrsCampaignResponse = a})
instance NFData CreateCampaignResponse where