module Network.AWS.EC2.PurchaseReservedInstancesOffering
(
PurchaseReservedInstancesOffering
, purchaseReservedInstancesOffering
, prioDryRun
, prioInstanceCount
, prioLimitPrice
, prioReservedInstancesOfferingId
, PurchaseReservedInstancesOfferingResponse
, purchaseReservedInstancesOfferingResponse
, priorReservedInstancesId
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data PurchaseReservedInstancesOffering = PurchaseReservedInstancesOffering
{ _prioDryRun :: Maybe Bool
, _prioInstanceCount :: Int
, _prioLimitPrice :: Maybe ReservedInstanceLimitPrice
, _prioReservedInstancesOfferingId :: Text
} deriving (Eq, Show)
purchaseReservedInstancesOffering :: Text
-> Int
-> PurchaseReservedInstancesOffering
purchaseReservedInstancesOffering p1 p2 = PurchaseReservedInstancesOffering
{ _prioReservedInstancesOfferingId = p1
, _prioInstanceCount = p2
, _prioDryRun = Nothing
, _prioLimitPrice = Nothing
}
prioDryRun :: Lens' PurchaseReservedInstancesOffering (Maybe Bool)
prioDryRun = lens _prioDryRun (\s a -> s { _prioDryRun = a })
prioInstanceCount :: Lens' PurchaseReservedInstancesOffering Int
prioInstanceCount =
lens _prioInstanceCount (\s a -> s { _prioInstanceCount = a })
prioLimitPrice :: Lens' PurchaseReservedInstancesOffering (Maybe ReservedInstanceLimitPrice)
prioLimitPrice = lens _prioLimitPrice (\s a -> s { _prioLimitPrice = a })
prioReservedInstancesOfferingId :: Lens' PurchaseReservedInstancesOffering Text
prioReservedInstancesOfferingId =
lens _prioReservedInstancesOfferingId
(\s a -> s { _prioReservedInstancesOfferingId = a })
newtype PurchaseReservedInstancesOfferingResponse = PurchaseReservedInstancesOfferingResponse
{ _priorReservedInstancesId :: Maybe Text
} deriving (Eq, Ord, Show, Monoid)
purchaseReservedInstancesOfferingResponse :: PurchaseReservedInstancesOfferingResponse
purchaseReservedInstancesOfferingResponse = PurchaseReservedInstancesOfferingResponse
{ _priorReservedInstancesId = Nothing
}
priorReservedInstancesId :: Lens' PurchaseReservedInstancesOfferingResponse (Maybe Text)
priorReservedInstancesId =
lens _priorReservedInstancesId
(\s a -> s { _priorReservedInstancesId = a })
instance ToPath PurchaseReservedInstancesOffering where
toPath = const "/"
instance ToQuery PurchaseReservedInstancesOffering where
toQuery PurchaseReservedInstancesOffering{..} = mconcat
[ "dryRun" =? _prioDryRun
, "InstanceCount" =? _prioInstanceCount
, "limitPrice" =? _prioLimitPrice
, "ReservedInstancesOfferingId" =? _prioReservedInstancesOfferingId
]
instance ToHeaders PurchaseReservedInstancesOffering
instance AWSRequest PurchaseReservedInstancesOffering where
type Sv PurchaseReservedInstancesOffering = EC2
type Rs PurchaseReservedInstancesOffering = PurchaseReservedInstancesOfferingResponse
request = post "PurchaseReservedInstancesOffering"
response = xmlResponse
instance FromXML PurchaseReservedInstancesOfferingResponse where
parseXML x = PurchaseReservedInstancesOfferingResponse
<$> x .@? "reservedInstancesId"