{-# 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.EC2.DescribeScheduledInstances
(
describeScheduledInstances
, DescribeScheduledInstances
, dsiFilters
, dsiSlotStartTimeRange
, dsiNextToken
, dsiScheduledInstanceIds
, dsiDryRun
, dsiMaxResults
, describeScheduledInstancesResponse
, DescribeScheduledInstancesResponse
, dsirsNextToken
, dsirsScheduledInstanceSet
, dsirsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeScheduledInstances = DescribeScheduledInstances'
{ _dsiFilters :: !(Maybe [Filter])
, _dsiSlotStartTimeRange :: !(Maybe SlotStartTimeRangeRequest)
, _dsiNextToken :: !(Maybe Text)
, _dsiScheduledInstanceIds :: !(Maybe [Text])
, _dsiDryRun :: !(Maybe Bool)
, _dsiMaxResults :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeScheduledInstances
:: DescribeScheduledInstances
describeScheduledInstances =
DescribeScheduledInstances'
{ _dsiFilters = Nothing
, _dsiSlotStartTimeRange = Nothing
, _dsiNextToken = Nothing
, _dsiScheduledInstanceIds = Nothing
, _dsiDryRun = Nothing
, _dsiMaxResults = Nothing
}
dsiFilters :: Lens' DescribeScheduledInstances [Filter]
dsiFilters = lens _dsiFilters (\ s a -> s{_dsiFilters = a}) . _Default . _Coerce;
dsiSlotStartTimeRange :: Lens' DescribeScheduledInstances (Maybe SlotStartTimeRangeRequest)
dsiSlotStartTimeRange = lens _dsiSlotStartTimeRange (\ s a -> s{_dsiSlotStartTimeRange = a});
dsiNextToken :: Lens' DescribeScheduledInstances (Maybe Text)
dsiNextToken = lens _dsiNextToken (\ s a -> s{_dsiNextToken = a});
dsiScheduledInstanceIds :: Lens' DescribeScheduledInstances [Text]
dsiScheduledInstanceIds = lens _dsiScheduledInstanceIds (\ s a -> s{_dsiScheduledInstanceIds = a}) . _Default . _Coerce;
dsiDryRun :: Lens' DescribeScheduledInstances (Maybe Bool)
dsiDryRun = lens _dsiDryRun (\ s a -> s{_dsiDryRun = a});
dsiMaxResults :: Lens' DescribeScheduledInstances (Maybe Int)
dsiMaxResults = lens _dsiMaxResults (\ s a -> s{_dsiMaxResults = a});
instance AWSRequest DescribeScheduledInstances where
type Rs DescribeScheduledInstances =
DescribeScheduledInstancesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeScheduledInstancesResponse' <$>
(x .@? "nextToken") <*>
(x .@? "scheduledInstanceSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable DescribeScheduledInstances
instance NFData DescribeScheduledInstances
instance ToHeaders DescribeScheduledInstances where
toHeaders = const mempty
instance ToPath DescribeScheduledInstances where
toPath = const "/"
instance ToQuery DescribeScheduledInstances where
toQuery DescribeScheduledInstances'{..}
= mconcat
["Action" =:
("DescribeScheduledInstances" :: ByteString),
"Version" =: ("2016-04-01" :: ByteString),
toQuery (toQueryList "Filter" <$> _dsiFilters),
"SlotStartTimeRange" =: _dsiSlotStartTimeRange,
"NextToken" =: _dsiNextToken,
toQuery
(toQueryList "ScheduledInstanceId" <$>
_dsiScheduledInstanceIds),
"DryRun" =: _dsiDryRun,
"MaxResults" =: _dsiMaxResults]
data DescribeScheduledInstancesResponse = DescribeScheduledInstancesResponse'
{ _dsirsNextToken :: !(Maybe Text)
, _dsirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])
, _dsirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeScheduledInstancesResponse
:: Int
-> DescribeScheduledInstancesResponse
describeScheduledInstancesResponse pResponseStatus_ =
DescribeScheduledInstancesResponse'
{ _dsirsNextToken = Nothing
, _dsirsScheduledInstanceSet = Nothing
, _dsirsResponseStatus = pResponseStatus_
}
dsirsNextToken :: Lens' DescribeScheduledInstancesResponse (Maybe Text)
dsirsNextToken = lens _dsirsNextToken (\ s a -> s{_dsirsNextToken = a});
dsirsScheduledInstanceSet :: Lens' DescribeScheduledInstancesResponse [ScheduledInstance]
dsirsScheduledInstanceSet = lens _dsirsScheduledInstanceSet (\ s a -> s{_dsirsScheduledInstanceSet = a}) . _Default . _Coerce;
dsirsResponseStatus :: Lens' DescribeScheduledInstancesResponse Int
dsirsResponseStatus = lens _dsirsResponseStatus (\ s a -> s{_dsirsResponseStatus = a});
instance NFData DescribeScheduledInstancesResponse