{-# 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.GetReservedInstancesExchangeQuote
(
getReservedInstancesExchangeQuote
, GetReservedInstancesExchangeQuote
, grieqTargetConfigurations
, grieqDryRun
, grieqReservedInstanceIds
, getReservedInstancesExchangeQuoteResponse
, GetReservedInstancesExchangeQuoteResponse
, grieqrsValidationFailureReason
, grieqrsTargetConfigurationValueRollup
, grieqrsCurrencyCode
, grieqrsTargetConfigurationValueSet
, grieqrsReservedInstanceValueRollup
, grieqrsOutputReservedInstancesWillExpireAt
, grieqrsReservedInstanceValueSet
, grieqrsIsValidExchange
, grieqrsPaymentDue
, grieqrsResponseStatus
) 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 GetReservedInstancesExchangeQuote = GetReservedInstancesExchangeQuote'
{ _grieqTargetConfigurations :: !(Maybe [TargetConfigurationRequest])
, _grieqDryRun :: !(Maybe Bool)
, _grieqReservedInstanceIds :: ![Text]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getReservedInstancesExchangeQuote
:: GetReservedInstancesExchangeQuote
getReservedInstancesExchangeQuote =
GetReservedInstancesExchangeQuote'
{ _grieqTargetConfigurations = Nothing
, _grieqDryRun = Nothing
, _grieqReservedInstanceIds = mempty
}
grieqTargetConfigurations :: Lens' GetReservedInstancesExchangeQuote [TargetConfigurationRequest]
grieqTargetConfigurations = lens _grieqTargetConfigurations (\ s a -> s{_grieqTargetConfigurations = a}) . _Default . _Coerce
grieqDryRun :: Lens' GetReservedInstancesExchangeQuote (Maybe Bool)
grieqDryRun = lens _grieqDryRun (\ s a -> s{_grieqDryRun = a})
grieqReservedInstanceIds :: Lens' GetReservedInstancesExchangeQuote [Text]
grieqReservedInstanceIds = lens _grieqReservedInstanceIds (\ s a -> s{_grieqReservedInstanceIds = a}) . _Coerce
instance AWSRequest GetReservedInstancesExchangeQuote
where
type Rs GetReservedInstancesExchangeQuote =
GetReservedInstancesExchangeQuoteResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
GetReservedInstancesExchangeQuoteResponse' <$>
(x .@? "validationFailureReason") <*>
(x .@? "targetConfigurationValueRollup")
<*> (x .@? "currencyCode")
<*>
(x .@? "targetConfigurationValueSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (x .@? "reservedInstanceValueRollup")
<*> (x .@? "outputReservedInstancesWillExpireAt")
<*>
(x .@? "reservedInstanceValueSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (x .@? "isValidExchange")
<*> (x .@? "paymentDue")
<*> (pure (fromEnum s)))
instance Hashable GetReservedInstancesExchangeQuote
where
instance NFData GetReservedInstancesExchangeQuote
where
instance ToHeaders GetReservedInstancesExchangeQuote
where
toHeaders = const mempty
instance ToPath GetReservedInstancesExchangeQuote
where
toPath = const "/"
instance ToQuery GetReservedInstancesExchangeQuote
where
toQuery GetReservedInstancesExchangeQuote'{..}
= mconcat
["Action" =:
("GetReservedInstancesExchangeQuote" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
toQuery
(toQueryList "TargetConfiguration" <$>
_grieqTargetConfigurations),
"DryRun" =: _grieqDryRun,
toQueryList "ReservedInstanceId"
_grieqReservedInstanceIds]
data GetReservedInstancesExchangeQuoteResponse = GetReservedInstancesExchangeQuoteResponse'
{ _grieqrsValidationFailureReason :: !(Maybe Text)
, _grieqrsTargetConfigurationValueRollup :: !(Maybe ReservationValue)
, _grieqrsCurrencyCode :: !(Maybe Text)
, _grieqrsTargetConfigurationValueSet :: !(Maybe [TargetReservationValue])
, _grieqrsReservedInstanceValueRollup :: !(Maybe ReservationValue)
, _grieqrsOutputReservedInstancesWillExpireAt :: !(Maybe ISO8601)
, _grieqrsReservedInstanceValueSet :: !(Maybe [ReservedInstanceReservationValue])
, _grieqrsIsValidExchange :: !(Maybe Bool)
, _grieqrsPaymentDue :: !(Maybe Text)
, _grieqrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getReservedInstancesExchangeQuoteResponse
:: Int
-> GetReservedInstancesExchangeQuoteResponse
getReservedInstancesExchangeQuoteResponse pResponseStatus_ =
GetReservedInstancesExchangeQuoteResponse'
{ _grieqrsValidationFailureReason = Nothing
, _grieqrsTargetConfigurationValueRollup = Nothing
, _grieqrsCurrencyCode = Nothing
, _grieqrsTargetConfigurationValueSet = Nothing
, _grieqrsReservedInstanceValueRollup = Nothing
, _grieqrsOutputReservedInstancesWillExpireAt = Nothing
, _grieqrsReservedInstanceValueSet = Nothing
, _grieqrsIsValidExchange = Nothing
, _grieqrsPaymentDue = Nothing
, _grieqrsResponseStatus = pResponseStatus_
}
grieqrsValidationFailureReason :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Text)
grieqrsValidationFailureReason = lens _grieqrsValidationFailureReason (\ s a -> s{_grieqrsValidationFailureReason = a})
grieqrsTargetConfigurationValueRollup :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe ReservationValue)
grieqrsTargetConfigurationValueRollup = lens _grieqrsTargetConfigurationValueRollup (\ s a -> s{_grieqrsTargetConfigurationValueRollup = a})
grieqrsCurrencyCode :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Text)
grieqrsCurrencyCode = lens _grieqrsCurrencyCode (\ s a -> s{_grieqrsCurrencyCode = a})
grieqrsTargetConfigurationValueSet :: Lens' GetReservedInstancesExchangeQuoteResponse [TargetReservationValue]
grieqrsTargetConfigurationValueSet = lens _grieqrsTargetConfigurationValueSet (\ s a -> s{_grieqrsTargetConfigurationValueSet = a}) . _Default . _Coerce
grieqrsReservedInstanceValueRollup :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe ReservationValue)
grieqrsReservedInstanceValueRollup = lens _grieqrsReservedInstanceValueRollup (\ s a -> s{_grieqrsReservedInstanceValueRollup = a})
grieqrsOutputReservedInstancesWillExpireAt :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe UTCTime)
grieqrsOutputReservedInstancesWillExpireAt = lens _grieqrsOutputReservedInstancesWillExpireAt (\ s a -> s{_grieqrsOutputReservedInstancesWillExpireAt = a}) . mapping _Time
grieqrsReservedInstanceValueSet :: Lens' GetReservedInstancesExchangeQuoteResponse [ReservedInstanceReservationValue]
grieqrsReservedInstanceValueSet = lens _grieqrsReservedInstanceValueSet (\ s a -> s{_grieqrsReservedInstanceValueSet = a}) . _Default . _Coerce
grieqrsIsValidExchange :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Bool)
grieqrsIsValidExchange = lens _grieqrsIsValidExchange (\ s a -> s{_grieqrsIsValidExchange = a})
grieqrsPaymentDue :: Lens' GetReservedInstancesExchangeQuoteResponse (Maybe Text)
grieqrsPaymentDue = lens _grieqrsPaymentDue (\ s a -> s{_grieqrsPaymentDue = a})
grieqrsResponseStatus :: Lens' GetReservedInstancesExchangeQuoteResponse Int
grieqrsResponseStatus = lens _grieqrsResponseStatus (\ s a -> s{_grieqrsResponseStatus = a})
instance NFData
GetReservedInstancesExchangeQuoteResponse
where