module Network.AWS.AutoScaling.DescribeNotificationConfigurations
(
DescribeNotificationConfigurations
, describeNotificationConfigurations
, dncAutoScalingGroupNames
, dncMaxRecords
, dncNextToken
, DescribeNotificationConfigurationsResponse
, describeNotificationConfigurationsResponse
, dncrNextToken
, dncrNotificationConfigurations
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.AutoScaling.Types
import qualified GHC.Exts
data DescribeNotificationConfigurations = DescribeNotificationConfigurations
{ _dncAutoScalingGroupNames :: List "member" Text
, _dncMaxRecords :: Maybe Int
, _dncNextToken :: Maybe Text
} deriving (Eq, Ord, Read, Show)
describeNotificationConfigurations :: DescribeNotificationConfigurations
describeNotificationConfigurations = DescribeNotificationConfigurations
{ _dncAutoScalingGroupNames = mempty
, _dncNextToken = Nothing
, _dncMaxRecords = Nothing
}
dncAutoScalingGroupNames :: Lens' DescribeNotificationConfigurations [Text]
dncAutoScalingGroupNames =
lens _dncAutoScalingGroupNames
(\s a -> s { _dncAutoScalingGroupNames = a })
. _List
dncMaxRecords :: Lens' DescribeNotificationConfigurations (Maybe Int)
dncMaxRecords = lens _dncMaxRecords (\s a -> s { _dncMaxRecords = a })
dncNextToken :: Lens' DescribeNotificationConfigurations (Maybe Text)
dncNextToken = lens _dncNextToken (\s a -> s { _dncNextToken = a })
data DescribeNotificationConfigurationsResponse = DescribeNotificationConfigurationsResponse
{ _dncrNextToken :: Maybe Text
, _dncrNotificationConfigurations :: List "member" NotificationConfiguration
} deriving (Eq, Read, Show)
describeNotificationConfigurationsResponse :: DescribeNotificationConfigurationsResponse
describeNotificationConfigurationsResponse = DescribeNotificationConfigurationsResponse
{ _dncrNotificationConfigurations = mempty
, _dncrNextToken = Nothing
}
dncrNextToken :: Lens' DescribeNotificationConfigurationsResponse (Maybe Text)
dncrNextToken = lens _dncrNextToken (\s a -> s { _dncrNextToken = a })
dncrNotificationConfigurations :: Lens' DescribeNotificationConfigurationsResponse [NotificationConfiguration]
dncrNotificationConfigurations =
lens _dncrNotificationConfigurations
(\s a -> s { _dncrNotificationConfigurations = a })
. _List
instance ToPath DescribeNotificationConfigurations where
toPath = const "/"
instance ToQuery DescribeNotificationConfigurations where
toQuery DescribeNotificationConfigurations{..} = mconcat
[ "AutoScalingGroupNames" =? _dncAutoScalingGroupNames
, "MaxRecords" =? _dncMaxRecords
, "NextToken" =? _dncNextToken
]
instance ToHeaders DescribeNotificationConfigurations
instance AWSRequest DescribeNotificationConfigurations where
type Sv DescribeNotificationConfigurations = AutoScaling
type Rs DescribeNotificationConfigurations = DescribeNotificationConfigurationsResponse
request = post "DescribeNotificationConfigurations"
response = xmlResponse
instance FromXML DescribeNotificationConfigurationsResponse where
parseXML = withElement "DescribeNotificationConfigurationsResult" $ \x -> DescribeNotificationConfigurationsResponse
<$> x .@? "NextToken"
<*> x .@? "NotificationConfigurations" .!@ mempty
instance AWSPager DescribeNotificationConfigurations where
page rq rs
| stop (rs ^. dncrNextToken) = Nothing
| otherwise = (\x -> rq & dncNextToken ?~ x)
<$> (rs ^. dncrNextToken)