{-# 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.AutoScaling.DescribeScheduledActions
(
describeScheduledActions
, DescribeScheduledActions
, dsasStartTime
, dsasNextToken
, dsasAutoScalingGroupName
, dsasMaxRecords
, dsasEndTime
, dsasScheduledActionNames
, describeScheduledActionsResponse
, DescribeScheduledActionsResponse
, dsarsScheduledUpdateGroupActions
, dsarsNextToken
, dsarsResponseStatus
) where
import Network.AWS.AutoScaling.Types
import Network.AWS.AutoScaling.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeScheduledActions = DescribeScheduledActions'
{ _dsasStartTime :: !(Maybe ISO8601)
, _dsasNextToken :: !(Maybe Text)
, _dsasAutoScalingGroupName :: !(Maybe Text)
, _dsasMaxRecords :: !(Maybe Int)
, _dsasEndTime :: !(Maybe ISO8601)
, _dsasScheduledActionNames :: !(Maybe [Text])
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeScheduledActions
:: DescribeScheduledActions
describeScheduledActions =
DescribeScheduledActions'
{ _dsasStartTime = Nothing
, _dsasNextToken = Nothing
, _dsasAutoScalingGroupName = Nothing
, _dsasMaxRecords = Nothing
, _dsasEndTime = Nothing
, _dsasScheduledActionNames = Nothing
}
dsasStartTime :: Lens' DescribeScheduledActions (Maybe UTCTime)
dsasStartTime = lens _dsasStartTime (\ s a -> s{_dsasStartTime = a}) . mapping _Time;
dsasNextToken :: Lens' DescribeScheduledActions (Maybe Text)
dsasNextToken = lens _dsasNextToken (\ s a -> s{_dsasNextToken = a});
dsasAutoScalingGroupName :: Lens' DescribeScheduledActions (Maybe Text)
dsasAutoScalingGroupName = lens _dsasAutoScalingGroupName (\ s a -> s{_dsasAutoScalingGroupName = a});
dsasMaxRecords :: Lens' DescribeScheduledActions (Maybe Int)
dsasMaxRecords = lens _dsasMaxRecords (\ s a -> s{_dsasMaxRecords = a});
dsasEndTime :: Lens' DescribeScheduledActions (Maybe UTCTime)
dsasEndTime = lens _dsasEndTime (\ s a -> s{_dsasEndTime = a}) . mapping _Time;
dsasScheduledActionNames :: Lens' DescribeScheduledActions [Text]
dsasScheduledActionNames = lens _dsasScheduledActionNames (\ s a -> s{_dsasScheduledActionNames = a}) . _Default . _Coerce;
instance AWSPager DescribeScheduledActions where
page rq rs
| stop (rs ^. dsarsNextToken) = Nothing
| stop (rs ^. dsarsScheduledUpdateGroupActions) =
Nothing
| otherwise =
Just $ rq & dsasNextToken .~ rs ^. dsarsNextToken
instance AWSRequest DescribeScheduledActions where
type Rs DescribeScheduledActions =
DescribeScheduledActionsResponse
request = postQuery autoScaling
response
= receiveXMLWrapper "DescribeScheduledActionsResult"
(\ s h x ->
DescribeScheduledActionsResponse' <$>
(x .@? "ScheduledUpdateGroupActions" .!@ mempty >>=
may (parseXMLList "member"))
<*> (x .@? "NextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeScheduledActions
instance NFData DescribeScheduledActions
instance ToHeaders DescribeScheduledActions where
toHeaders = const mempty
instance ToPath DescribeScheduledActions where
toPath = const "/"
instance ToQuery DescribeScheduledActions where
toQuery DescribeScheduledActions'{..}
= mconcat
["Action" =:
("DescribeScheduledActions" :: ByteString),
"Version" =: ("2011-01-01" :: ByteString),
"StartTime" =: _dsasStartTime,
"NextToken" =: _dsasNextToken,
"AutoScalingGroupName" =: _dsasAutoScalingGroupName,
"MaxRecords" =: _dsasMaxRecords,
"EndTime" =: _dsasEndTime,
"ScheduledActionNames" =:
toQuery
(toQueryList "member" <$> _dsasScheduledActionNames)]
data DescribeScheduledActionsResponse = DescribeScheduledActionsResponse'
{ _dsarsScheduledUpdateGroupActions :: !(Maybe [ScheduledUpdateGroupAction])
, _dsarsNextToken :: !(Maybe Text)
, _dsarsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeScheduledActionsResponse
:: Int
-> DescribeScheduledActionsResponse
describeScheduledActionsResponse pResponseStatus_ =
DescribeScheduledActionsResponse'
{ _dsarsScheduledUpdateGroupActions = Nothing
, _dsarsNextToken = Nothing
, _dsarsResponseStatus = pResponseStatus_
}
dsarsScheduledUpdateGroupActions :: Lens' DescribeScheduledActionsResponse [ScheduledUpdateGroupAction]
dsarsScheduledUpdateGroupActions = lens _dsarsScheduledUpdateGroupActions (\ s a -> s{_dsarsScheduledUpdateGroupActions = a}) . _Default . _Coerce;
dsarsNextToken :: Lens' DescribeScheduledActionsResponse (Maybe Text)
dsarsNextToken = lens _dsarsNextToken (\ s a -> s{_dsarsNextToken = a});
dsarsResponseStatus :: Lens' DescribeScheduledActionsResponse Int
dsarsResponseStatus = lens _dsarsResponseStatus (\ s a -> s{_dsarsResponseStatus = a});
instance NFData DescribeScheduledActionsResponse