{-# 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.AlexaBusiness.ListDeviceEvents
(
listDeviceEvents
, ListDeviceEvents
, ldeNextToken
, ldeEventType
, ldeMaxResults
, ldeDeviceARN
, listDeviceEventsResponse
, ListDeviceEventsResponse
, ldersNextToken
, ldersDeviceEvents
, ldersResponseStatus
) where
import Network.AWS.AlexaBusiness.Types
import Network.AWS.AlexaBusiness.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListDeviceEvents = ListDeviceEvents'
{ _ldeNextToken :: !(Maybe Text)
, _ldeEventType :: !(Maybe DeviceEventType)
, _ldeMaxResults :: !(Maybe Nat)
, _ldeDeviceARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listDeviceEvents
:: Text
-> ListDeviceEvents
listDeviceEvents pDeviceARN_ =
ListDeviceEvents'
{ _ldeNextToken = Nothing
, _ldeEventType = Nothing
, _ldeMaxResults = Nothing
, _ldeDeviceARN = pDeviceARN_
}
ldeNextToken :: Lens' ListDeviceEvents (Maybe Text)
ldeNextToken = lens _ldeNextToken (\ s a -> s{_ldeNextToken = a})
ldeEventType :: Lens' ListDeviceEvents (Maybe DeviceEventType)
ldeEventType = lens _ldeEventType (\ s a -> s{_ldeEventType = a})
ldeMaxResults :: Lens' ListDeviceEvents (Maybe Natural)
ldeMaxResults = lens _ldeMaxResults (\ s a -> s{_ldeMaxResults = a}) . mapping _Nat
ldeDeviceARN :: Lens' ListDeviceEvents Text
ldeDeviceARN = lens _ldeDeviceARN (\ s a -> s{_ldeDeviceARN = a})
instance AWSRequest ListDeviceEvents where
type Rs ListDeviceEvents = ListDeviceEventsResponse
request = postJSON alexaBusiness
response
= receiveJSON
(\ s h x ->
ListDeviceEventsResponse' <$>
(x .?> "NextToken") <*>
(x .?> "DeviceEvents" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListDeviceEvents where
instance NFData ListDeviceEvents where
instance ToHeaders ListDeviceEvents where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AlexaForBusiness.ListDeviceEvents" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListDeviceEvents where
toJSON ListDeviceEvents'{..}
= object
(catMaybes
[("NextToken" .=) <$> _ldeNextToken,
("EventType" .=) <$> _ldeEventType,
("MaxResults" .=) <$> _ldeMaxResults,
Just ("DeviceArn" .= _ldeDeviceARN)])
instance ToPath ListDeviceEvents where
toPath = const "/"
instance ToQuery ListDeviceEvents where
toQuery = const mempty
data ListDeviceEventsResponse = ListDeviceEventsResponse'
{ _ldersNextToken :: !(Maybe Text)
, _ldersDeviceEvents :: !(Maybe [DeviceEvent])
, _ldersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listDeviceEventsResponse
:: Int
-> ListDeviceEventsResponse
listDeviceEventsResponse pResponseStatus_ =
ListDeviceEventsResponse'
{ _ldersNextToken = Nothing
, _ldersDeviceEvents = Nothing
, _ldersResponseStatus = pResponseStatus_
}
ldersNextToken :: Lens' ListDeviceEventsResponse (Maybe Text)
ldersNextToken = lens _ldersNextToken (\ s a -> s{_ldersNextToken = a})
ldersDeviceEvents :: Lens' ListDeviceEventsResponse [DeviceEvent]
ldersDeviceEvents = lens _ldersDeviceEvents (\ s a -> s{_ldersDeviceEvents = a}) . _Default . _Coerce
ldersResponseStatus :: Lens' ListDeviceEventsResponse Int
ldersResponseStatus = lens _ldersResponseStatus (\ s a -> s{_ldersResponseStatus = a})
instance NFData ListDeviceEventsResponse where