module Network.AWS.IoTDataPlane.Publish
(
publish
, Publish
, pPayload
, pQos
, pTopic
, publishResponse
, PublishResponse
) where
import Network.AWS.IoTDataPlane.Types
import Network.AWS.IoTDataPlane.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data Publish = Publish'
{ _pPayload :: !(Maybe (HashMap Text Value))
, _pQos :: !(Maybe Nat)
, _pTopic :: !Text
} deriving (Eq,Show,Data,Typeable,Generic)
publish
:: Text
-> Publish
publish pTopic_ =
Publish'
{ _pPayload = Nothing
, _pQos = Nothing
, _pTopic = pTopic_
}
pPayload :: Lens' Publish (Maybe (HashMap Text Value))
pPayload = lens _pPayload (\ s a -> s{_pPayload = a});
pQos :: Lens' Publish (Maybe Natural)
pQos = lens _pQos (\ s a -> s{_pQos = a}) . mapping _Nat;
pTopic :: Lens' Publish Text
pTopic = lens _pTopic (\ s a -> s{_pTopic = a});
instance AWSRequest Publish where
type Rs Publish = PublishResponse
request = postBody ioTDataPlane
response = receiveNull PublishResponse'
instance Hashable Publish
instance ToBody Publish where
toBody = toBody . _pPayload
instance ToHeaders Publish where
toHeaders = const mempty
instance ToPath Publish where
toPath Publish'{..}
= mconcat ["/topics/", toBS _pTopic]
instance ToQuery Publish where
toQuery Publish'{..} = mconcat ["qos" =: _pQos]
data PublishResponse =
PublishResponse'
deriving (Eq,Read,Show,Data,Typeable,Generic)
publishResponse
:: PublishResponse
publishResponse = PublishResponse'