{-# 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.DescribeThing
(
describeThing
, DescribeThing
, dThingName
, describeThingResponse
, DescribeThingResponse
, dtrsDefaultClientId
, dtrsThingTypeName
, dtrsThingARN
, dtrsAttributes
, dtrsVersion
, dtrsThingName
, dtrsThingId
, dtrsResponseStatus
) 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
newtype DescribeThing = DescribeThing'
{ _dThingName :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeThing
:: Text
-> DescribeThing
describeThing pThingName_ = DescribeThing' {_dThingName = pThingName_}
dThingName :: Lens' DescribeThing Text
dThingName = lens _dThingName (\ s a -> s{_dThingName = a})
instance AWSRequest DescribeThing where
type Rs DescribeThing = DescribeThingResponse
request = get ioT
response
= receiveJSON
(\ s h x ->
DescribeThingResponse' <$>
(x .?> "defaultClientId") <*> (x .?> "thingTypeName")
<*> (x .?> "thingArn")
<*> (x .?> "attributes" .!@ mempty)
<*> (x .?> "version")
<*> (x .?> "thingName")
<*> (x .?> "thingId")
<*> (pure (fromEnum s)))
instance Hashable DescribeThing where
instance NFData DescribeThing where
instance ToHeaders DescribeThing where
toHeaders = const mempty
instance ToPath DescribeThing where
toPath DescribeThing'{..}
= mconcat ["/things/", toBS _dThingName]
instance ToQuery DescribeThing where
toQuery = const mempty
data DescribeThingResponse = DescribeThingResponse'
{ _dtrsDefaultClientId :: !(Maybe Text)
, _dtrsThingTypeName :: !(Maybe Text)
, _dtrsThingARN :: !(Maybe Text)
, _dtrsAttributes :: !(Maybe (Map Text Text))
, _dtrsVersion :: !(Maybe Integer)
, _dtrsThingName :: !(Maybe Text)
, _dtrsThingId :: !(Maybe Text)
, _dtrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeThingResponse
:: Int
-> DescribeThingResponse
describeThingResponse pResponseStatus_ =
DescribeThingResponse'
{ _dtrsDefaultClientId = Nothing
, _dtrsThingTypeName = Nothing
, _dtrsThingARN = Nothing
, _dtrsAttributes = Nothing
, _dtrsVersion = Nothing
, _dtrsThingName = Nothing
, _dtrsThingId = Nothing
, _dtrsResponseStatus = pResponseStatus_
}
dtrsDefaultClientId :: Lens' DescribeThingResponse (Maybe Text)
dtrsDefaultClientId = lens _dtrsDefaultClientId (\ s a -> s{_dtrsDefaultClientId = a})
dtrsThingTypeName :: Lens' DescribeThingResponse (Maybe Text)
dtrsThingTypeName = lens _dtrsThingTypeName (\ s a -> s{_dtrsThingTypeName = a})
dtrsThingARN :: Lens' DescribeThingResponse (Maybe Text)
dtrsThingARN = lens _dtrsThingARN (\ s a -> s{_dtrsThingARN = a})
dtrsAttributes :: Lens' DescribeThingResponse (HashMap Text Text)
dtrsAttributes = lens _dtrsAttributes (\ s a -> s{_dtrsAttributes = a}) . _Default . _Map
dtrsVersion :: Lens' DescribeThingResponse (Maybe Integer)
dtrsVersion = lens _dtrsVersion (\ s a -> s{_dtrsVersion = a})
dtrsThingName :: Lens' DescribeThingResponse (Maybe Text)
dtrsThingName = lens _dtrsThingName (\ s a -> s{_dtrsThingName = a})
dtrsThingId :: Lens' DescribeThingResponse (Maybe Text)
dtrsThingId = lens _dtrsThingId (\ s a -> s{_dtrsThingId = a})
dtrsResponseStatus :: Lens' DescribeThingResponse Int
dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = a})
instance NFData DescribeThingResponse where