amazonka-iot-analytics-1.6.0: gen/Network/AWS/IoTAnalytics/SampleChannelData.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.IoTAnalytics.SampleChannelData
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves a sample of messages from the specified channel ingested during the specified timeframe. Up to 10 messages can be retrieved.
--
--
module Network.AWS.IoTAnalytics.SampleChannelData
(
-- * Creating a Request
sampleChannelData
, SampleChannelData
-- * Request Lenses
, scdStartTime
, scdMaxMessages
, scdEndTime
, scdChannelName
-- * Destructuring the Response
, sampleChannelDataResponse
, SampleChannelDataResponse
-- * Response Lenses
, scdrsPayloads
, scdrsResponseStatus
) where
import Network.AWS.IoTAnalytics.Types
import Network.AWS.IoTAnalytics.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'sampleChannelData' smart constructor.
data SampleChannelData = SampleChannelData'
{ _scdStartTime :: !(Maybe POSIX)
, _scdMaxMessages :: !(Maybe Nat)
, _scdEndTime :: !(Maybe POSIX)
, _scdChannelName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'SampleChannelData' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'scdStartTime' - The start of the time window from which sample messages are retrieved.
--
-- * 'scdMaxMessages' - The number of sample messages to be retrieved. The limit is 10, the default is also 10.
--
-- * 'scdEndTime' - The end of the time window from which sample messages are retrieved.
--
-- * 'scdChannelName' - The name of the channel whose message samples are retrieved.
sampleChannelData
:: Text -- ^ 'scdChannelName'
-> SampleChannelData
sampleChannelData pChannelName_ =
SampleChannelData'
{ _scdStartTime = Nothing
, _scdMaxMessages = Nothing
, _scdEndTime = Nothing
, _scdChannelName = pChannelName_
}
-- | The start of the time window from which sample messages are retrieved.
scdStartTime :: Lens' SampleChannelData (Maybe UTCTime)
scdStartTime = lens _scdStartTime (\ s a -> s{_scdStartTime = a}) . mapping _Time
-- | The number of sample messages to be retrieved. The limit is 10, the default is also 10.
scdMaxMessages :: Lens' SampleChannelData (Maybe Natural)
scdMaxMessages = lens _scdMaxMessages (\ s a -> s{_scdMaxMessages = a}) . mapping _Nat
-- | The end of the time window from which sample messages are retrieved.
scdEndTime :: Lens' SampleChannelData (Maybe UTCTime)
scdEndTime = lens _scdEndTime (\ s a -> s{_scdEndTime = a}) . mapping _Time
-- | The name of the channel whose message samples are retrieved.
scdChannelName :: Lens' SampleChannelData Text
scdChannelName = lens _scdChannelName (\ s a -> s{_scdChannelName = a})
instance AWSRequest SampleChannelData where
type Rs SampleChannelData = SampleChannelDataResponse
request = get ioTAnalytics
response
= receiveJSON
(\ s h x ->
SampleChannelDataResponse' <$>
(x .?> "payloads") <*> (pure (fromEnum s)))
instance Hashable SampleChannelData where
instance NFData SampleChannelData where
instance ToHeaders SampleChannelData where
toHeaders = const mempty
instance ToPath SampleChannelData where
toPath SampleChannelData'{..}
= mconcat
["/channels/", toBS _scdChannelName, "/sample"]
instance ToQuery SampleChannelData where
toQuery SampleChannelData'{..}
= mconcat
["startTime" =: _scdStartTime,
"maxMessages" =: _scdMaxMessages,
"endTime" =: _scdEndTime]
-- | /See:/ 'sampleChannelDataResponse' smart constructor.
data SampleChannelDataResponse = SampleChannelDataResponse'
{ _scdrsPayloads :: !(Maybe (List1 Base64))
, _scdrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'SampleChannelDataResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'scdrsPayloads' - The list of message samples. Each sample message is returned as a base64-encoded string.
--
-- * 'scdrsResponseStatus' - -- | The response status code.
sampleChannelDataResponse
:: Int -- ^ 'scdrsResponseStatus'
-> SampleChannelDataResponse
sampleChannelDataResponse pResponseStatus_ =
SampleChannelDataResponse'
{_scdrsPayloads = Nothing, _scdrsResponseStatus = pResponseStatus_}
-- | The list of message samples. Each sample message is returned as a base64-encoded string.
scdrsPayloads :: Lens' SampleChannelDataResponse (Maybe (NonEmpty ByteString))
scdrsPayloads = lens _scdrsPayloads (\ s a -> s{_scdrsPayloads = a}) . mapping _List1
-- | -- | The response status code.
scdrsResponseStatus :: Lens' SampleChannelDataResponse Int
scdrsResponseStatus = lens _scdrsResponseStatus (\ s a -> s{_scdrsResponseStatus = a})
instance NFData SampleChannelDataResponse where