module Network.AWS.EC2.CreateReservedInstancesListing
(
createReservedInstancesListing
, CreateReservedInstancesListing
, crilReservedInstancesId
, crilInstanceCount
, crilPriceSchedules
, crilClientToken
, createReservedInstancesListingResponse
, CreateReservedInstancesListingResponse
, crersReservedInstancesListings
, crersResponseStatus
) 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 CreateReservedInstancesListing = CreateReservedInstancesListing'
{ _crilReservedInstancesId :: !Text
, _crilInstanceCount :: !Int
, _crilPriceSchedules :: ![PriceScheduleSpecification]
, _crilClientToken :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createReservedInstancesListing
:: Text
-> Int
-> Text
-> CreateReservedInstancesListing
createReservedInstancesListing pReservedInstancesId_ pInstanceCount_ pClientToken_ =
CreateReservedInstancesListing'
{ _crilReservedInstancesId = pReservedInstancesId_
, _crilInstanceCount = pInstanceCount_
, _crilPriceSchedules = mempty
, _crilClientToken = pClientToken_
}
crilReservedInstancesId :: Lens' CreateReservedInstancesListing Text
crilReservedInstancesId = lens _crilReservedInstancesId (\ s a -> s{_crilReservedInstancesId = a});
crilInstanceCount :: Lens' CreateReservedInstancesListing Int
crilInstanceCount = lens _crilInstanceCount (\ s a -> s{_crilInstanceCount = a});
crilPriceSchedules :: Lens' CreateReservedInstancesListing [PriceScheduleSpecification]
crilPriceSchedules = lens _crilPriceSchedules (\ s a -> s{_crilPriceSchedules = a}) . _Coerce;
crilClientToken :: Lens' CreateReservedInstancesListing Text
crilClientToken = lens _crilClientToken (\ s a -> s{_crilClientToken = a});
instance AWSRequest CreateReservedInstancesListing
where
type Rs CreateReservedInstancesListing =
CreateReservedInstancesListingResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
CreateReservedInstancesListingResponse' <$>
(x .@? "reservedInstancesListingsSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable CreateReservedInstancesListing
instance NFData CreateReservedInstancesListing
instance ToHeaders CreateReservedInstancesListing
where
toHeaders = const mempty
instance ToPath CreateReservedInstancesListing where
toPath = const "/"
instance ToQuery CreateReservedInstancesListing where
toQuery CreateReservedInstancesListing'{..}
= mconcat
["Action" =:
("CreateReservedInstancesListing" :: ByteString),
"Version" =: ("2015-10-01" :: ByteString),
"ReservedInstancesId" =: _crilReservedInstancesId,
"InstanceCount" =: _crilInstanceCount,
toQueryList "PriceSchedules" _crilPriceSchedules,
"ClientToken" =: _crilClientToken]
data CreateReservedInstancesListingResponse = CreateReservedInstancesListingResponse'
{ _crersReservedInstancesListings :: !(Maybe [ReservedInstancesListing])
, _crersResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createReservedInstancesListingResponse
:: Int
-> CreateReservedInstancesListingResponse
createReservedInstancesListingResponse pResponseStatus_ =
CreateReservedInstancesListingResponse'
{ _crersReservedInstancesListings = Nothing
, _crersResponseStatus = pResponseStatus_
}
crersReservedInstancesListings :: Lens' CreateReservedInstancesListingResponse [ReservedInstancesListing]
crersReservedInstancesListings = lens _crersReservedInstancesListings (\ s a -> s{_crersReservedInstancesListings = a}) . _Default . _Coerce;
crersResponseStatus :: Lens' CreateReservedInstancesListingResponse Int
crersResponseStatus = lens _crersResponseStatus (\ s a -> s{_crersResponseStatus = a});
instance NFData
CreateReservedInstancesListingResponse