{-# 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.ModifyReservedInstances
(
modifyReservedInstances
, ModifyReservedInstances
, mriClientToken
, mriReservedInstancesIds
, mriTargetConfigurations
, modifyReservedInstancesResponse
, ModifyReservedInstancesResponse
, mrirsReservedInstancesModificationId
, mrirsResponseStatus
) 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 ModifyReservedInstances = ModifyReservedInstances'
{ _mriClientToken :: !(Maybe Text)
, _mriReservedInstancesIds :: ![Text]
, _mriTargetConfigurations :: ![ReservedInstancesConfiguration]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
modifyReservedInstances
:: ModifyReservedInstances
modifyReservedInstances =
ModifyReservedInstances'
{ _mriClientToken = Nothing
, _mriReservedInstancesIds = mempty
, _mriTargetConfigurations = mempty
}
mriClientToken :: Lens' ModifyReservedInstances (Maybe Text)
mriClientToken = lens _mriClientToken (\ s a -> s{_mriClientToken = a})
mriReservedInstancesIds :: Lens' ModifyReservedInstances [Text]
mriReservedInstancesIds = lens _mriReservedInstancesIds (\ s a -> s{_mriReservedInstancesIds = a}) . _Coerce
mriTargetConfigurations :: Lens' ModifyReservedInstances [ReservedInstancesConfiguration]
mriTargetConfigurations = lens _mriTargetConfigurations (\ s a -> s{_mriTargetConfigurations = a}) . _Coerce
instance AWSRequest ModifyReservedInstances where
type Rs ModifyReservedInstances =
ModifyReservedInstancesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
ModifyReservedInstancesResponse' <$>
(x .@? "reservedInstancesModificationId") <*>
(pure (fromEnum s)))
instance Hashable ModifyReservedInstances where
instance NFData ModifyReservedInstances where
instance ToHeaders ModifyReservedInstances where
toHeaders = const mempty
instance ToPath ModifyReservedInstances where
toPath = const "/"
instance ToQuery ModifyReservedInstances where
toQuery ModifyReservedInstances'{..}
= mconcat
["Action" =:
("ModifyReservedInstances" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"ClientToken" =: _mriClientToken,
toQueryList "ReservedInstancesId"
_mriReservedInstancesIds,
toQueryList
"ReservedInstancesConfigurationSetItemType"
_mriTargetConfigurations]
data ModifyReservedInstancesResponse = ModifyReservedInstancesResponse'
{ _mrirsReservedInstancesModificationId :: !(Maybe Text)
, _mrirsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
modifyReservedInstancesResponse
:: Int
-> ModifyReservedInstancesResponse
modifyReservedInstancesResponse pResponseStatus_ =
ModifyReservedInstancesResponse'
{ _mrirsReservedInstancesModificationId = Nothing
, _mrirsResponseStatus = pResponseStatus_
}
mrirsReservedInstancesModificationId :: Lens' ModifyReservedInstancesResponse (Maybe Text)
mrirsReservedInstancesModificationId = lens _mrirsReservedInstancesModificationId (\ s a -> s{_mrirsReservedInstancesModificationId = a})
mrirsResponseStatus :: Lens' ModifyReservedInstancesResponse Int
mrirsResponseStatus = lens _mrirsResponseStatus (\ s a -> s{_mrirsResponseStatus = a})
instance NFData ModifyReservedInstancesResponse where