{-# 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.DMS.DescribeTableStatistics
(
describeTableStatistics
, DescribeTableStatistics
, dtsFilters
, dtsMarker
, dtsMaxRecords
, dtsReplicationTaskARN
, describeTableStatisticsResponse
, DescribeTableStatisticsResponse
, dtsrsReplicationTaskARN
, dtsrsMarker
, dtsrsTableStatistics
, dtsrsResponseStatus
) where
import Network.AWS.DMS.Types
import Network.AWS.DMS.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeTableStatistics = DescribeTableStatistics'
{ _dtsFilters :: !(Maybe [Filter])
, _dtsMarker :: !(Maybe Text)
, _dtsMaxRecords :: !(Maybe Int)
, _dtsReplicationTaskARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeTableStatistics
:: Text
-> DescribeTableStatistics
describeTableStatistics pReplicationTaskARN_ =
DescribeTableStatistics'
{ _dtsFilters = Nothing
, _dtsMarker = Nothing
, _dtsMaxRecords = Nothing
, _dtsReplicationTaskARN = pReplicationTaskARN_
}
dtsFilters :: Lens' DescribeTableStatistics [Filter]
dtsFilters = lens _dtsFilters (\ s a -> s{_dtsFilters = a}) . _Default . _Coerce
dtsMarker :: Lens' DescribeTableStatistics (Maybe Text)
dtsMarker = lens _dtsMarker (\ s a -> s{_dtsMarker = a})
dtsMaxRecords :: Lens' DescribeTableStatistics (Maybe Int)
dtsMaxRecords = lens _dtsMaxRecords (\ s a -> s{_dtsMaxRecords = a})
dtsReplicationTaskARN :: Lens' DescribeTableStatistics Text
dtsReplicationTaskARN = lens _dtsReplicationTaskARN (\ s a -> s{_dtsReplicationTaskARN = a})
instance AWSPager DescribeTableStatistics where
page rq rs
| stop (rs ^. dtsrsMarker) = Nothing
| stop (rs ^. dtsrsTableStatistics) = Nothing
| otherwise =
Just $ rq & dtsMarker .~ rs ^. dtsrsMarker
instance AWSRequest DescribeTableStatistics where
type Rs DescribeTableStatistics =
DescribeTableStatisticsResponse
request = postJSON dms
response
= receiveJSON
(\ s h x ->
DescribeTableStatisticsResponse' <$>
(x .?> "ReplicationTaskArn") <*> (x .?> "Marker") <*>
(x .?> "TableStatistics" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable DescribeTableStatistics where
instance NFData DescribeTableStatistics where
instance ToHeaders DescribeTableStatistics where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDMSv20160101.DescribeTableStatistics" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeTableStatistics where
toJSON DescribeTableStatistics'{..}
= object
(catMaybes
[("Filters" .=) <$> _dtsFilters,
("Marker" .=) <$> _dtsMarker,
("MaxRecords" .=) <$> _dtsMaxRecords,
Just
("ReplicationTaskArn" .= _dtsReplicationTaskARN)])
instance ToPath DescribeTableStatistics where
toPath = const "/"
instance ToQuery DescribeTableStatistics where
toQuery = const mempty
data DescribeTableStatisticsResponse = DescribeTableStatisticsResponse'
{ _dtsrsReplicationTaskARN :: !(Maybe Text)
, _dtsrsMarker :: !(Maybe Text)
, _dtsrsTableStatistics :: !(Maybe [TableStatistics])
, _dtsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeTableStatisticsResponse
:: Int
-> DescribeTableStatisticsResponse
describeTableStatisticsResponse pResponseStatus_ =
DescribeTableStatisticsResponse'
{ _dtsrsReplicationTaskARN = Nothing
, _dtsrsMarker = Nothing
, _dtsrsTableStatistics = Nothing
, _dtsrsResponseStatus = pResponseStatus_
}
dtsrsReplicationTaskARN :: Lens' DescribeTableStatisticsResponse (Maybe Text)
dtsrsReplicationTaskARN = lens _dtsrsReplicationTaskARN (\ s a -> s{_dtsrsReplicationTaskARN = a})
dtsrsMarker :: Lens' DescribeTableStatisticsResponse (Maybe Text)
dtsrsMarker = lens _dtsrsMarker (\ s a -> s{_dtsrsMarker = a})
dtsrsTableStatistics :: Lens' DescribeTableStatisticsResponse [TableStatistics]
dtsrsTableStatistics = lens _dtsrsTableStatistics (\ s a -> s{_dtsrsTableStatistics = a}) . _Default . _Coerce
dtsrsResponseStatus :: Lens' DescribeTableStatisticsResponse Int
dtsrsResponseStatus = lens _dtsrsResponseStatus (\ s a -> s{_dtsrsResponseStatus = a})
instance NFData DescribeTableStatisticsResponse where