module Network.AWS.AutoScaling.DescribeScheduledActions
(
DescribeScheduledActions
, describeScheduledActions
, dsa1AutoScalingGroupName
, dsa1EndTime
, dsa1MaxRecords
, dsa1NextToken
, dsa1ScheduledActionNames
, dsa1StartTime
, DescribeScheduledActionsResponse
, describeScheduledActionsResponse
, dsarNextToken
, dsarScheduledUpdateGroupActions
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.AutoScaling.Types
import qualified GHC.Exts
data DescribeScheduledActions = DescribeScheduledActions
{ _dsa1AutoScalingGroupName :: Maybe Text
, _dsa1EndTime :: Maybe ISO8601
, _dsa1MaxRecords :: Maybe Int
, _dsa1NextToken :: Maybe Text
, _dsa1ScheduledActionNames :: List "member" Text
, _dsa1StartTime :: Maybe ISO8601
} deriving (Eq, Ord, Show)
describeScheduledActions :: DescribeScheduledActions
describeScheduledActions = DescribeScheduledActions
{ _dsa1AutoScalingGroupName = Nothing
, _dsa1ScheduledActionNames = mempty
, _dsa1StartTime = Nothing
, _dsa1EndTime = Nothing
, _dsa1NextToken = Nothing
, _dsa1MaxRecords = Nothing
}
dsa1AutoScalingGroupName :: Lens' DescribeScheduledActions (Maybe Text)
dsa1AutoScalingGroupName =
lens _dsa1AutoScalingGroupName
(\s a -> s { _dsa1AutoScalingGroupName = a })
dsa1EndTime :: Lens' DescribeScheduledActions (Maybe UTCTime)
dsa1EndTime = lens _dsa1EndTime (\s a -> s { _dsa1EndTime = a }) . mapping _Time
dsa1MaxRecords :: Lens' DescribeScheduledActions (Maybe Int)
dsa1MaxRecords = lens _dsa1MaxRecords (\s a -> s { _dsa1MaxRecords = a })
dsa1NextToken :: Lens' DescribeScheduledActions (Maybe Text)
dsa1NextToken = lens _dsa1NextToken (\s a -> s { _dsa1NextToken = a })
dsa1ScheduledActionNames :: Lens' DescribeScheduledActions [Text]
dsa1ScheduledActionNames =
lens _dsa1ScheduledActionNames
(\s a -> s { _dsa1ScheduledActionNames = a })
. _List
dsa1StartTime :: Lens' DescribeScheduledActions (Maybe UTCTime)
dsa1StartTime = lens _dsa1StartTime (\s a -> s { _dsa1StartTime = a }) . mapping _Time
data DescribeScheduledActionsResponse = DescribeScheduledActionsResponse
{ _dsarNextToken :: Maybe Text
, _dsarScheduledUpdateGroupActions :: List "member" ScheduledUpdateGroupAction
} deriving (Eq, Show)
describeScheduledActionsResponse :: DescribeScheduledActionsResponse
describeScheduledActionsResponse = DescribeScheduledActionsResponse
{ _dsarScheduledUpdateGroupActions = mempty
, _dsarNextToken = Nothing
}
dsarNextToken :: Lens' DescribeScheduledActionsResponse (Maybe Text)
dsarNextToken = lens _dsarNextToken (\s a -> s { _dsarNextToken = a })
dsarScheduledUpdateGroupActions :: Lens' DescribeScheduledActionsResponse [ScheduledUpdateGroupAction]
dsarScheduledUpdateGroupActions =
lens _dsarScheduledUpdateGroupActions
(\s a -> s { _dsarScheduledUpdateGroupActions = a })
. _List
instance ToPath DescribeScheduledActions where
toPath = const "/"
instance ToQuery DescribeScheduledActions where
toQuery DescribeScheduledActions{..} = mconcat
[ "AutoScalingGroupName" =? _dsa1AutoScalingGroupName
, "EndTime" =? _dsa1EndTime
, "MaxRecords" =? _dsa1MaxRecords
, "NextToken" =? _dsa1NextToken
, "ScheduledActionNames" =? _dsa1ScheduledActionNames
, "StartTime" =? _dsa1StartTime
]
instance ToHeaders DescribeScheduledActions
instance AWSRequest DescribeScheduledActions where
type Sv DescribeScheduledActions = AutoScaling
type Rs DescribeScheduledActions = DescribeScheduledActionsResponse
request = post "DescribeScheduledActions"
response = xmlResponse
instance FromXML DescribeScheduledActionsResponse where
parseXML = withElement "DescribeScheduledActionsResult" $ \x -> DescribeScheduledActionsResponse
<$> x .@? "NextToken"
<*> x .@? "ScheduledUpdateGroupActions" .!@ mempty
instance AWSPager DescribeScheduledActions where
page rq rs
| stop (rq ^. dsa1NextToken) = Nothing
| otherwise = (\x -> rq & dsa1NextToken ?~ x)
<$> (rs ^. dsarNextToken)