module Network.AWS.EC2.PurchaseScheduledInstances
(
purchaseScheduledInstances
, PurchaseScheduledInstances
, psiClientToken
, psiDryRun
, psiPurchaseRequests
, purchaseScheduledInstancesResponse
, PurchaseScheduledInstancesResponse
, psirsScheduledInstanceSet
, psirsResponseStatus
) 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 PurchaseScheduledInstances = PurchaseScheduledInstances'
{ _psiClientToken :: !(Maybe Text)
, _psiDryRun :: !(Maybe Bool)
, _psiPurchaseRequests :: !(List1 PurchaseRequest)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
purchaseScheduledInstances
:: NonEmpty PurchaseRequest
-> PurchaseScheduledInstances
purchaseScheduledInstances pPurchaseRequests_ =
PurchaseScheduledInstances'
{ _psiClientToken = Nothing
, _psiDryRun = Nothing
, _psiPurchaseRequests = _List1 # pPurchaseRequests_
}
psiClientToken :: Lens' PurchaseScheduledInstances (Maybe Text)
psiClientToken = lens _psiClientToken (\ s a -> s{_psiClientToken = a});
psiDryRun :: Lens' PurchaseScheduledInstances (Maybe Bool)
psiDryRun = lens _psiDryRun (\ s a -> s{_psiDryRun = a});
psiPurchaseRequests :: Lens' PurchaseScheduledInstances (NonEmpty PurchaseRequest)
psiPurchaseRequests = lens _psiPurchaseRequests (\ s a -> s{_psiPurchaseRequests = a}) . _List1;
instance AWSRequest PurchaseScheduledInstances where
type Rs PurchaseScheduledInstances =
PurchaseScheduledInstancesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
PurchaseScheduledInstancesResponse' <$>
(x .@? "scheduledInstanceSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable PurchaseScheduledInstances
instance NFData PurchaseScheduledInstances
instance ToHeaders PurchaseScheduledInstances where
toHeaders = const mempty
instance ToPath PurchaseScheduledInstances where
toPath = const "/"
instance ToQuery PurchaseScheduledInstances where
toQuery PurchaseScheduledInstances'{..}
= mconcat
["Action" =:
("PurchaseScheduledInstances" :: ByteString),
"Version" =: ("2015-10-01" :: ByteString),
"ClientToken" =: _psiClientToken,
"DryRun" =: _psiDryRun,
toQueryList "PurchaseRequest" _psiPurchaseRequests]
data PurchaseScheduledInstancesResponse = PurchaseScheduledInstancesResponse'
{ _psirsScheduledInstanceSet :: !(Maybe [ScheduledInstance])
, _psirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
purchaseScheduledInstancesResponse
:: Int
-> PurchaseScheduledInstancesResponse
purchaseScheduledInstancesResponse pResponseStatus_ =
PurchaseScheduledInstancesResponse'
{ _psirsScheduledInstanceSet = Nothing
, _psirsResponseStatus = pResponseStatus_
}
psirsScheduledInstanceSet :: Lens' PurchaseScheduledInstancesResponse [ScheduledInstance]
psirsScheduledInstanceSet = lens _psirsScheduledInstanceSet (\ s a -> s{_psirsScheduledInstanceSet = a}) . _Default . _Coerce;
psirsResponseStatus :: Lens' PurchaseScheduledInstancesResponse Int
psirsResponseStatus = lens _psirsResponseStatus (\ s a -> s{_psirsResponseStatus = a});
instance NFData PurchaseScheduledInstancesResponse