{-# 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.IoT.RegisterThing
(
registerThing
, RegisterThing
, rtParameters
, rtTemplateBody
, registerThingResponse
, RegisterThingResponse
, rtrsCertificatePem
, rtrsResourceARNs
, rtrsResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data RegisterThing = RegisterThing'
{ _rtParameters :: !(Maybe (Map Text Text))
, _rtTemplateBody :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
registerThing
:: Text
-> RegisterThing
registerThing pTemplateBody_ =
RegisterThing' {_rtParameters = Nothing, _rtTemplateBody = pTemplateBody_}
rtParameters :: Lens' RegisterThing (HashMap Text Text)
rtParameters = lens _rtParameters (\ s a -> s{_rtParameters = a}) . _Default . _Map
rtTemplateBody :: Lens' RegisterThing Text
rtTemplateBody = lens _rtTemplateBody (\ s a -> s{_rtTemplateBody = a})
instance AWSRequest RegisterThing where
type Rs RegisterThing = RegisterThingResponse
request = postJSON ioT
response
= receiveJSON
(\ s h x ->
RegisterThingResponse' <$>
(x .?> "certificatePem") <*>
(x .?> "resourceArns" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable RegisterThing where
instance NFData RegisterThing where
instance ToHeaders RegisterThing where
toHeaders = const mempty
instance ToJSON RegisterThing where
toJSON RegisterThing'{..}
= object
(catMaybes
[("parameters" .=) <$> _rtParameters,
Just ("templateBody" .= _rtTemplateBody)])
instance ToPath RegisterThing where
toPath = const "/things"
instance ToQuery RegisterThing where
toQuery = const mempty
data RegisterThingResponse = RegisterThingResponse'
{ _rtrsCertificatePem :: !(Maybe Text)
, _rtrsResourceARNs :: !(Maybe (Map Text Text))
, _rtrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
registerThingResponse
:: Int
-> RegisterThingResponse
registerThingResponse pResponseStatus_ =
RegisterThingResponse'
{ _rtrsCertificatePem = Nothing
, _rtrsResourceARNs = Nothing
, _rtrsResponseStatus = pResponseStatus_
}
rtrsCertificatePem :: Lens' RegisterThingResponse (Maybe Text)
rtrsCertificatePem = lens _rtrsCertificatePem (\ s a -> s{_rtrsCertificatePem = a})
rtrsResourceARNs :: Lens' RegisterThingResponse (HashMap Text Text)
rtrsResourceARNs = lens _rtrsResourceARNs (\ s a -> s{_rtrsResourceARNs = a}) . _Default . _Map
rtrsResponseStatus :: Lens' RegisterThingResponse Int
rtrsResponseStatus = lens _rtrsResponseStatus (\ s a -> s{_rtrsResponseStatus = a})
instance NFData RegisterThingResponse where