{-# 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.SendMessages
(
sendMessages
, SendMessages
, smApplicationId
, smMessageRequest
, sendMessagesResponse
, SendMessagesResponse
, smrsResponseStatus
, smrsMessageResponse
) 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 SendMessages = SendMessages'
{ _smApplicationId :: !Text
, _smMessageRequest :: !MessageRequest
} deriving (Eq, Read, Show, Data, Typeable, Generic)
sendMessages
:: Text
-> MessageRequest
-> SendMessages
sendMessages pApplicationId_ pMessageRequest_ =
SendMessages'
{_smApplicationId = pApplicationId_, _smMessageRequest = pMessageRequest_}
smApplicationId :: Lens' SendMessages Text
smApplicationId = lens _smApplicationId (\ s a -> s{_smApplicationId = a})
smMessageRequest :: Lens' SendMessages MessageRequest
smMessageRequest = lens _smMessageRequest (\ s a -> s{_smMessageRequest = a})
instance AWSRequest SendMessages where
type Rs SendMessages = SendMessagesResponse
request = postJSON pinpoint
response
= receiveJSON
(\ s h x ->
SendMessagesResponse' <$>
(pure (fromEnum s)) <*> (eitherParseJSON x))
instance Hashable SendMessages where
instance NFData SendMessages where
instance ToHeaders SendMessages where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON SendMessages where
toJSON SendMessages'{..}
= object
(catMaybes
[Just ("MessageRequest" .= _smMessageRequest)])
instance ToPath SendMessages where
toPath SendMessages'{..}
= mconcat
["/v1/apps/", toBS _smApplicationId, "/messages"]
instance ToQuery SendMessages where
toQuery = const mempty
data SendMessagesResponse = SendMessagesResponse'
{ _smrsResponseStatus :: !Int
, _smrsMessageResponse :: !MessageResponse
} deriving (Eq, Read, Show, Data, Typeable, Generic)
sendMessagesResponse
:: Int
-> MessageResponse
-> SendMessagesResponse
sendMessagesResponse pResponseStatus_ pMessageResponse_ =
SendMessagesResponse'
{ _smrsResponseStatus = pResponseStatus_
, _smrsMessageResponse = pMessageResponse_
}
smrsResponseStatus :: Lens' SendMessagesResponse Int
smrsResponseStatus = lens _smrsResponseStatus (\ s a -> s{_smrsResponseStatus = a})
smrsMessageResponse :: Lens' SendMessagesResponse MessageResponse
smrsMessageResponse = lens _smrsMessageResponse (\ s a -> s{_smrsMessageResponse = a})
instance NFData SendMessagesResponse where