{-# 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.DescribeScheduledInstanceAvailability
(
describeScheduledInstanceAvailability
, DescribeScheduledInstanceAvailability
, dsiaMinSlotDurationInHours
, dsiaFilters
, dsiaNextToken
, dsiaMaxSlotDurationInHours
, dsiaDryRun
, dsiaMaxResults
, dsiaFirstSlotStartTimeRange
, dsiaRecurrence
, describeScheduledInstanceAvailabilityResponse
, DescribeScheduledInstanceAvailabilityResponse
, dsiarsScheduledInstanceAvailabilitySet
, dsiarsNextToken
, dsiarsResponseStatus
) 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 DescribeScheduledInstanceAvailability = DescribeScheduledInstanceAvailability'
{ _dsiaMinSlotDurationInHours :: !(Maybe Int)
, _dsiaFilters :: !(Maybe [Filter])
, _dsiaNextToken :: !(Maybe Text)
, _dsiaMaxSlotDurationInHours :: !(Maybe Int)
, _dsiaDryRun :: !(Maybe Bool)
, _dsiaMaxResults :: !(Maybe Int)
, _dsiaFirstSlotStartTimeRange :: !SlotDateTimeRangeRequest
, _dsiaRecurrence :: !ScheduledInstanceRecurrenceRequest
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeScheduledInstanceAvailability
:: SlotDateTimeRangeRequest
-> ScheduledInstanceRecurrenceRequest
-> DescribeScheduledInstanceAvailability
describeScheduledInstanceAvailability pFirstSlotStartTimeRange_ pRecurrence_ =
DescribeScheduledInstanceAvailability'
{ _dsiaMinSlotDurationInHours = Nothing
, _dsiaFilters = Nothing
, _dsiaNextToken = Nothing
, _dsiaMaxSlotDurationInHours = Nothing
, _dsiaDryRun = Nothing
, _dsiaMaxResults = Nothing
, _dsiaFirstSlotStartTimeRange = pFirstSlotStartTimeRange_
, _dsiaRecurrence = pRecurrence_
}
dsiaMinSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)
dsiaMinSlotDurationInHours = lens _dsiaMinSlotDurationInHours (\ s a -> s{_dsiaMinSlotDurationInHours = a})
dsiaFilters :: Lens' DescribeScheduledInstanceAvailability [Filter]
dsiaFilters = lens _dsiaFilters (\ s a -> s{_dsiaFilters = a}) . _Default . _Coerce
dsiaNextToken :: Lens' DescribeScheduledInstanceAvailability (Maybe Text)
dsiaNextToken = lens _dsiaNextToken (\ s a -> s{_dsiaNextToken = a})
dsiaMaxSlotDurationInHours :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)
dsiaMaxSlotDurationInHours = lens _dsiaMaxSlotDurationInHours (\ s a -> s{_dsiaMaxSlotDurationInHours = a})
dsiaDryRun :: Lens' DescribeScheduledInstanceAvailability (Maybe Bool)
dsiaDryRun = lens _dsiaDryRun (\ s a -> s{_dsiaDryRun = a})
dsiaMaxResults :: Lens' DescribeScheduledInstanceAvailability (Maybe Int)
dsiaMaxResults = lens _dsiaMaxResults (\ s a -> s{_dsiaMaxResults = a})
dsiaFirstSlotStartTimeRange :: Lens' DescribeScheduledInstanceAvailability SlotDateTimeRangeRequest
dsiaFirstSlotStartTimeRange = lens _dsiaFirstSlotStartTimeRange (\ s a -> s{_dsiaFirstSlotStartTimeRange = a})
dsiaRecurrence :: Lens' DescribeScheduledInstanceAvailability ScheduledInstanceRecurrenceRequest
dsiaRecurrence = lens _dsiaRecurrence (\ s a -> s{_dsiaRecurrence = a})
instance AWSRequest
DescribeScheduledInstanceAvailability
where
type Rs DescribeScheduledInstanceAvailability =
DescribeScheduledInstanceAvailabilityResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeScheduledInstanceAvailabilityResponse' <$>
(x .@? "scheduledInstanceAvailabilitySet" .!@ mempty
>>= may (parseXMLList "item"))
<*> (x .@? "nextToken")
<*> (pure (fromEnum s)))
instance Hashable
DescribeScheduledInstanceAvailability
where
instance NFData DescribeScheduledInstanceAvailability
where
instance ToHeaders
DescribeScheduledInstanceAvailability
where
toHeaders = const mempty
instance ToPath DescribeScheduledInstanceAvailability
where
toPath = const "/"
instance ToQuery
DescribeScheduledInstanceAvailability
where
toQuery DescribeScheduledInstanceAvailability'{..}
= mconcat
["Action" =:
("DescribeScheduledInstanceAvailability" ::
ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"MinSlotDurationInHours" =:
_dsiaMinSlotDurationInHours,
toQuery (toQueryList "Filter" <$> _dsiaFilters),
"NextToken" =: _dsiaNextToken,
"MaxSlotDurationInHours" =:
_dsiaMaxSlotDurationInHours,
"DryRun" =: _dsiaDryRun,
"MaxResults" =: _dsiaMaxResults,
"FirstSlotStartTimeRange" =:
_dsiaFirstSlotStartTimeRange,
"Recurrence" =: _dsiaRecurrence]
data DescribeScheduledInstanceAvailabilityResponse = DescribeScheduledInstanceAvailabilityResponse'
{ _dsiarsScheduledInstanceAvailabilitySet :: !(Maybe [ScheduledInstanceAvailability])
, _dsiarsNextToken :: !(Maybe Text)
, _dsiarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeScheduledInstanceAvailabilityResponse
:: Int
-> DescribeScheduledInstanceAvailabilityResponse
describeScheduledInstanceAvailabilityResponse pResponseStatus_ =
DescribeScheduledInstanceAvailabilityResponse'
{ _dsiarsScheduledInstanceAvailabilitySet = Nothing
, _dsiarsNextToken = Nothing
, _dsiarsResponseStatus = pResponseStatus_
}
dsiarsScheduledInstanceAvailabilitySet :: Lens' DescribeScheduledInstanceAvailabilityResponse [ScheduledInstanceAvailability]
dsiarsScheduledInstanceAvailabilitySet = lens _dsiarsScheduledInstanceAvailabilitySet (\ s a -> s{_dsiarsScheduledInstanceAvailabilitySet = a}) . _Default . _Coerce
dsiarsNextToken :: Lens' DescribeScheduledInstanceAvailabilityResponse (Maybe Text)
dsiarsNextToken = lens _dsiarsNextToken (\ s a -> s{_dsiarsNextToken = a})
dsiarsResponseStatus :: Lens' DescribeScheduledInstanceAvailabilityResponse Int
dsiarsResponseStatus = lens _dsiarsResponseStatus (\ s a -> s{_dsiarsResponseStatus = a})
instance NFData
DescribeScheduledInstanceAvailabilityResponse
where