{-# 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.Glue.GetCrawlerMetrics
(
getCrawlerMetrics
, GetCrawlerMetrics
, gcmNextToken
, gcmMaxResults
, gcmCrawlerNameList
, getCrawlerMetricsResponse
, GetCrawlerMetricsResponse
, gcmrsCrawlerMetricsList
, gcmrsNextToken
, gcmrsResponseStatus
) where
import Network.AWS.Glue.Types
import Network.AWS.Glue.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data GetCrawlerMetrics = GetCrawlerMetrics'
{ _gcmNextToken :: !(Maybe Text)
, _gcmMaxResults :: !(Maybe Nat)
, _gcmCrawlerNameList :: !(Maybe [Text])
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getCrawlerMetrics
:: GetCrawlerMetrics
getCrawlerMetrics =
GetCrawlerMetrics'
{ _gcmNextToken = Nothing
, _gcmMaxResults = Nothing
, _gcmCrawlerNameList = Nothing
}
gcmNextToken :: Lens' GetCrawlerMetrics (Maybe Text)
gcmNextToken = lens _gcmNextToken (\ s a -> s{_gcmNextToken = a})
gcmMaxResults :: Lens' GetCrawlerMetrics (Maybe Natural)
gcmMaxResults = lens _gcmMaxResults (\ s a -> s{_gcmMaxResults = a}) . mapping _Nat
gcmCrawlerNameList :: Lens' GetCrawlerMetrics [Text]
gcmCrawlerNameList = lens _gcmCrawlerNameList (\ s a -> s{_gcmCrawlerNameList = a}) . _Default . _Coerce
instance AWSPager GetCrawlerMetrics where
page rq rs
| stop (rs ^. gcmrsNextToken) = Nothing
| stop (rs ^. gcmrsCrawlerMetricsList) = Nothing
| otherwise =
Just $ rq & gcmNextToken .~ rs ^. gcmrsNextToken
instance AWSRequest GetCrawlerMetrics where
type Rs GetCrawlerMetrics = GetCrawlerMetricsResponse
request = postJSON glue
response
= receiveJSON
(\ s h x ->
GetCrawlerMetricsResponse' <$>
(x .?> "CrawlerMetricsList" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable GetCrawlerMetrics where
instance NFData GetCrawlerMetrics where
instance ToHeaders GetCrawlerMetrics where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSGlue.GetCrawlerMetrics" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetCrawlerMetrics where
toJSON GetCrawlerMetrics'{..}
= object
(catMaybes
[("NextToken" .=) <$> _gcmNextToken,
("MaxResults" .=) <$> _gcmMaxResults,
("CrawlerNameList" .=) <$> _gcmCrawlerNameList])
instance ToPath GetCrawlerMetrics where
toPath = const "/"
instance ToQuery GetCrawlerMetrics where
toQuery = const mempty
data GetCrawlerMetricsResponse = GetCrawlerMetricsResponse'
{ _gcmrsCrawlerMetricsList :: !(Maybe [CrawlerMetrics])
, _gcmrsNextToken :: !(Maybe Text)
, _gcmrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getCrawlerMetricsResponse
:: Int
-> GetCrawlerMetricsResponse
getCrawlerMetricsResponse pResponseStatus_ =
GetCrawlerMetricsResponse'
{ _gcmrsCrawlerMetricsList = Nothing
, _gcmrsNextToken = Nothing
, _gcmrsResponseStatus = pResponseStatus_
}
gcmrsCrawlerMetricsList :: Lens' GetCrawlerMetricsResponse [CrawlerMetrics]
gcmrsCrawlerMetricsList = lens _gcmrsCrawlerMetricsList (\ s a -> s{_gcmrsCrawlerMetricsList = a}) . _Default . _Coerce
gcmrsNextToken :: Lens' GetCrawlerMetricsResponse (Maybe Text)
gcmrsNextToken = lens _gcmrsNextToken (\ s a -> s{_gcmrsNextToken = a})
gcmrsResponseStatus :: Lens' GetCrawlerMetricsResponse Int
gcmrsResponseStatus = lens _gcmrsResponseStatus (\ s a -> s{_gcmrsResponseStatus = a})
instance NFData GetCrawlerMetricsResponse where